--- a/support/nfs/svc_socket.c
+++ b/support/nfs/svc_socket.c
@@ -40,10 +40,13 @@ int getservport(u_long number, const cha
 	char rpcdata[1024], servdata[1024];
 	struct rpcent rpcbuf, *rpcp;
 	struct servent servbuf, *servp = NULL;
-	int ret;
-
+	int ret=0;
+#ifndef __UCLIBC__
 	ret = getrpcbynumber_r(number, &rpcbuf, rpcdata, sizeof rpcdata,
 				&rpcp);
+#else
+	rpcp = getrpcbynumber (number);
+#endif
 	if (ret == 0 && rpcp != NULL) {
 		/* First try name.  */
 		ret = getservbyname_r(rpcp->r_name, proto, &servbuf, servdata,
--- a/utils/mountd/cache.c
+++ b/utils/mountd/cache.c
@@ -166,6 +166,7 @@ static void auth_unix_gid(FILE *f)
 	pw = getpwuid(uid);
 	if (!pw)
 		rv = -1;
+#ifndef __UCLIBC__
 	else {
 		rv = getgrouplist(pw->pw_name, pw->pw_gid, groups, &ngroups);
 		if (rv == -1 && ngroups >= groups_len) {
@@ -180,6 +181,7 @@ static void auth_unix_gid(FILE *f)
 			}
 		}
 	}
+#endif
 	qword_printuint(f, uid);
 	qword_printtimefrom(f, DEFAULT_TTL);
 	if (rv >= 0) {