diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-06-29 22:25:54 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-06-29 22:25:54 +0000 |
commit | a3b816d253b83a6ee23bb78c3292507acb2b93bb (patch) | |
tree | 66fbec5cf5e7af896344982ffeaf3d2f59379b39 /package | |
parent | 7e526d40a371ae409235234ff920909b55452801 (diff) | |
download | upstream-a3b816d253b83a6ee23bb78c3292507acb2b93bb.tar.gz upstream-a3b816d253b83a6ee23bb78c3292507acb2b93bb.tar.bz2 upstream-a3b816d253b83a6ee23bb78c3292507acb2b93bb.zip |
librpc: fix compile errors with musl
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41400 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r-- | package/libs/librpc/patches/110-musl_fixes.patch | 330 |
1 files changed, 330 insertions, 0 deletions
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 <sys/types.h> + #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 <sys/time.h> + #include <sys/param.h> + +--- a/bindresvport.c ++++ b/bindresvport.c +@@ -39,6 +39,7 @@ + #include <sys/types.h> + #include <sys/socket.h> + #include <netinet/in.h> ++#include <netdb.h> + + + /* +--- a/rpc/netdb.h ++++ b/rpc/netdb.h +@@ -37,12 +37,17 @@ + #define _RPC_NETDB_H 1 + + #include <features.h> ++#include <netdb.h> + + #define __need_size_t + #include <stddef.h> + + #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 <stdio.h> + #include <unistd.h> + #include <rpc/rpc.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <rpc/pmap_clnt.h> + #ifdef USE_IN_LIBIO +--- a/clnt_udp.c ++++ b/clnt_udp.c +@@ -45,7 +45,7 @@ static char sccsid[] = "@(#)clnt_udp.c 1 + #include <rpc/rpc.h> + #include <rpc/xdr.h> + #include <rpc/clnt.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <sys/ioctl.h> + #include <netdb.h> +--- a/clnt_unix.c ++++ b/clnt_unix.c +@@ -55,7 +55,7 @@ + #include <unistd.h> + #include <rpc/rpc.h> + #include <sys/uio.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <rpc/pmap_clnt.h> + #ifdef USE_IN_LIBIO +--- a/pmap_rmt.c ++++ b/pmap_rmt.c +@@ -48,7 +48,7 @@ static char sccsid[] = "@(#)pmap_rmt.c 1 + #include <rpc/pmap_prot.h> + #include <rpc/pmap_clnt.h> + #include <rpc/pmap_rmt.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <stdio.h> + #include <errno.h> +--- a/rcmd.c ++++ b/rcmd.c +@@ -62,9 +62,10 @@ static char sccsid[] = "@(#)rcmd.c 8.3 ( + #define __UCLIBC_HIDE_DEPRECATED__ + #include <features.h> + #include <sys/param.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <sys/stat.h> ++#include <sys/types.h> + + #include <netinet/in.h> + #include <arpa/inet.h> +@@ -86,6 +87,11 @@ static char sccsid[] = "@(#)rcmd.c 8.3 ( + #endif + #include <sys/uio.h> + ++#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 <sys/poll.h> ++#include <poll.h> + #include <pthread.h> + + #ifdef __UCLIBC__ +--- a/rpc_commondata.c ++++ b/rpc_commondata.c +@@ -27,7 +27,7 @@ + * Mountain View, California 94043 + */ + #include <rpc/rpc.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/select.h> + + #undef svc_fdset +--- a/rtime.c ++++ b/rtime.c +@@ -51,13 +51,16 @@ static char sccsid[] = "@(#)rtime.c 2.2 + #include <rpc/rpc.h> + #include <rpc/clnt.h> + #include <sys/types.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <sys/time.h> + #include <rpc/auth_des.h> + #include <errno.h> + #include <netinet/in.h> + ++#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 <rpc/svc.h> + #include <rpc/pmap_clnt.h> +-#include <sys/poll.h> ++#include <poll.h> + + /* used by svc_[max_]pollfd */ + /* used by svc_fdset */ +--- a/svc_run.c ++++ b/svc_run.c +@@ -36,7 +36,7 @@ + + #include <errno.h> + #include <unistd.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <rpc/rpc.h> + + /* 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 <string.h> + #include <rpc/rpc.h> + #include <sys/socket.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <errno.h> + #include <stdlib.h> + +--- a/svc_unix.c ++++ b/svc_unix.c +@@ -47,7 +47,7 @@ + #include <rpc/svc.h> + #include <sys/socket.h> + #include <sys/uio.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <errno.h> + #include <stdlib.h> + +--- a/sa_len.c ++++ b/sa_len.c +@@ -20,9 +20,9 @@ + #include <features.h> + #include <sys/socket.h> + #include <netinet/in.h> +-#include <netipx/ipx.h> + #include <sys/un.h> + #if 0 ++#include <netipx/ipx.h> + #include <netash/ash.h> + #include <netatalk/at.h> + #include <netax25/ax25.h> +@@ -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 + |