aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-06-29 22:25:54 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-06-29 22:25:54 +0000
commit07304f4732d5daa8157f6b8333fa9824f55faf3c (patch)
tree6777eb2e7b6b4136ae401756a6eeb9f135e3bb4a
parent0a30b910e4c6f1cdb677865f6f50ecd6abf5a8cf (diff)
downloadupstream-07304f4732d5daa8157f6b8333fa9824f55faf3c.tar.gz
upstream-07304f4732d5daa8157f6b8333fa9824f55faf3c.tar.bz2
upstream-07304f4732d5daa8157f6b8333fa9824f55faf3c.zip
librpc: fix compile errors with musl
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 41400
-rw-r--r--package/libs/librpc/patches/110-musl_fixes.patch330
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
+