From: Felix Fietkau Date: Sun, 29 Jun 2014 22:25:54 +0000 (+0000) Subject: librpc: fix compile errors with musl X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=07304f4732d5daa8157f6b8333fa9824f55faf3c;p=openwrt%2Fstaging%2Fwigyori.git librpc: fix compile errors with musl Signed-off-by: Felix Fietkau SVN-Revision: 41400 --- diff --git a/package/libs/librpc/patches/110-musl_fixes.patch b/package/libs/librpc/patches/110-musl_fixes.patch new file mode 100644 index 0000000000..969f3e7b22 --- /dev/null +++ b/package/libs/librpc/patches/110-musl_fixes.patch @@ -0,0 +1,330 @@ +--- a/rpc/types.h ++++ b/rpc/types.h +@@ -79,22 +79,6 @@ typedef unsigned long rpcport_t; + #include + #endif + +-#ifndef __u_char_defined +-typedef __u_char u_char; +-typedef __u_short u_short; +-typedef __u_int u_int; +-typedef __u_long u_long; +-typedef __quad_t quad_t; +-typedef __u_quad_t u_quad_t; +-typedef __fsid_t fsid_t; +-# define __u_char_defined +-#endif +-#ifndef __daddr_t_defined +-typedef __daddr_t daddr_t; +-typedef __caddr_t caddr_t; +-# define __daddr_t_defined +-#endif +- + #include + #include + +--- a/bindresvport.c ++++ b/bindresvport.c +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + + /* +--- a/rpc/netdb.h ++++ b/rpc/netdb.h +@@ -37,12 +37,17 @@ + #define _RPC_NETDB_H 1 + + #include ++#include + + #define __need_size_t + #include + + #include "types.h" + ++#ifndef NETDB_INTERNAL ++#define NETDB_INTERNAL -1 ++#endif ++ + __BEGIN_DECLS + + struct rpcent +--- a/create_xid.c ++++ b/create_xid.c +@@ -31,7 +31,6 @@ + __UCLIBC_MUTEX_STATIC(mylock, PTHREAD_MUTEX_INITIALIZER); + + static smallint is_initialized; +-static struct drand48_data __rpc_lrand48_data; + + u_long _create_xid (void) attribute_hidden; + u_long _create_xid (void) +@@ -45,11 +44,11 @@ u_long _create_xid (void) + struct timeval now; + + gettimeofday (&now, (struct timezone *) 0); +- srand48_r (now.tv_sec ^ now.tv_usec, &__rpc_lrand48_data); ++ srand48 (now.tv_sec ^ now.tv_usec); + is_initialized = 1; + } + +- lrand48_r (&__rpc_lrand48_data, &res); ++ res = lrand48(); + + __UCLIBC_MUTEX_UNLOCK(mylock); + +--- a/clnt_tcp.c ++++ b/clnt_tcp.c +@@ -58,7 +58,7 @@ static char sccsid[] = "@(#)clnt_tcp.c 1 + #include + #include + #include +-#include ++#include + #include + #include + #ifdef USE_IN_LIBIO +--- a/clnt_udp.c ++++ b/clnt_udp.c +@@ -45,7 +45,7 @@ static char sccsid[] = "@(#)clnt_udp.c 1 + #include + #include + #include +-#include ++#include + #include + #include + #include +--- a/clnt_unix.c ++++ b/clnt_unix.c +@@ -55,7 +55,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #ifdef USE_IN_LIBIO +--- a/pmap_rmt.c ++++ b/pmap_rmt.c +@@ -48,7 +48,7 @@ static char sccsid[] = "@(#)pmap_rmt.c 1 + #include + #include + #include +-#include ++#include + #include + #include + #include +--- a/rcmd.c ++++ b/rcmd.c +@@ -62,9 +62,10 @@ static char sccsid[] = "@(#)rcmd.c 8.3 ( + #define __UCLIBC_HIDE_DEPRECATED__ + #include + #include +-#include ++#include + #include + #include ++#include + + #include + #include +@@ -86,6 +87,11 @@ static char sccsid[] = "@(#)rcmd.c 8.3 ( + #endif + #include + ++#ifndef _PATH_HEQUIV ++#define _PATH_HEQUIV "/etc/hosts.equiv" ++#endif ++ ++int rresvport(int *alport); + + /* some forward declarations */ + static int __ivaliduser2(FILE *hostf, u_int32_t raddr, +@@ -106,7 +112,7 @@ int rcmd(char **ahost, u_short rport, co + struct hostent *hp; + struct sockaddr_in sin, from; + struct pollfd pfd[2]; +- int32_t oldmask; ++ sigset_t sig, osig; + pid_t pid; + int s, lport, timo; + char c; +@@ -145,7 +151,9 @@ int rcmd(char **ahost, u_short rport, co + pfd[1].events = POLLIN; + + *ahost = hp->h_name; +- oldmask = sigblock(sigmask(SIGURG)); /* __sigblock */ ++ sigemptyset(&sig); ++ sigaddset(&sig, SIGURG); ++ sigprocmask(SIG_BLOCK, &sig, &osig); + for (timo = 1, lport = IPPORT_RESERVED - 1;;) { + s = rresvport(&lport); + if (s < 0) { +@@ -154,7 +162,7 @@ int rcmd(char **ahost, u_short rport, co + "rcmd: socket: All ports in use\n"); + else + (void)fprintf(stderr, "rcmd: socket: %m\n"); +- sigsetmask(oldmask); /* sigsetmask */ ++ sigprocmask(SIG_SETMASK, &osig, NULL); + return -1; + } + fcntl(s, F_SETOWN, pid); +@@ -189,7 +197,7 @@ int rcmd(char **ahost, u_short rport, co + continue; + } + (void)fprintf(stderr, "%s: %m\n", hp->h_name); +- sigsetmask(oldmask); /* __sigsetmask */ ++ sigprocmask(SIG_SETMASK, &osig, NULL); + return -1; + } + lport--; +@@ -256,14 +264,14 @@ int rcmd(char **ahost, u_short rport, co + } + goto bad2; + } +- sigsetmask(oldmask); ++ sigprocmask(SIG_SETMASK, &osig, NULL); + return s; + bad2: + if (lport) + (void)close(*fd2p); + bad: + (void)close(s); +- sigsetmask(oldmask); ++ sigprocmask(SIG_SETMASK, &osig, NULL); + return -1; + } + +--- a/rpc/compat.h ++++ b/rpc/compat.h +@@ -11,7 +11,7 @@ + #define __UCLIBC_HAS_THREADS__ + #endif + +-#include ++#include + #include + + #ifdef __UCLIBC__ +--- a/rpc_commondata.c ++++ b/rpc_commondata.c +@@ -27,7 +27,7 @@ + * Mountain View, California 94043 + */ + #include +-#include ++#include + #include + + #undef svc_fdset +--- a/rtime.c ++++ b/rtime.c +@@ -51,13 +51,16 @@ static char sccsid[] = "@(#)rtime.c 2.2 + #include + #include + #include +-#include ++#include + #include + #include + #include + #include + #include + ++#ifndef IPPORT_TIMESERVER ++#define IPPORT_TIMESERVER 37 ++#endif + + #define NYEARS (u_long)(1970 - 1900) + #define TOFFSET (u_long)(60*60*24*(365*NYEARS + (NYEARS/4))) +--- a/svc.c ++++ b/svc.c +@@ -44,7 +44,7 @@ + #include "rpc_private.h" + #include + #include +-#include ++#include + + /* used by svc_[max_]pollfd */ + /* used by svc_fdset */ +--- a/svc_run.c ++++ b/svc_run.c +@@ -36,7 +36,7 @@ + + #include + #include +-#include ++#include + #include + + /* used by svc_[max_]pollfd */ +--- a/svc_tcp.c ++++ b/svc_tcp.c +@@ -49,7 +49,7 @@ static char sccsid[] = "@(#)svc_tcp.c 1. + #include + #include + #include +-#include ++#include + #include + #include + +--- a/svc_unix.c ++++ b/svc_unix.c +@@ -47,7 +47,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +--- a/sa_len.c ++++ b/sa_len.c +@@ -20,9 +20,9 @@ + #include + #include + #include +-#include + #include + #if 0 ++#include + #include + #include + #include +@@ -49,13 +49,13 @@ int __libc_sa_len (sa_family_t af) + return sizeof (struct sockaddr_rose); + case AF_PACKET: + return sizeof (struct sockaddr_ll); ++ case AF_IPX: ++ return sizeof (struct sockaddr_ipx); + #endif + case AF_INET: + return sizeof (struct sockaddr_in); + case AF_INET6: + return sizeof (struct sockaddr_in6); +- case AF_IPX: +- return sizeof (struct sockaddr_ipx); + case AF_LOCAL: + return sizeof (struct sockaddr_un); + } +--- a/xdr_float.c ++++ b/xdr_float.c +@@ -55,7 +55,7 @@ static char sccsid[] = "@(#)xdr_float.c + * This routine works on Suns (Sky / 68000's) and Vaxen. + */ + +-#define LSW (__FLOAT_WORD_ORDER == __BIG_ENDIAN) ++#define LSW (__BYTE_ORDER == __BIG_ENDIAN) + + #ifdef vax +