From baef360adb72a1dcab8ec4b6312ac8f513202303 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 10 Apr 2015 20:02:55 +0000 Subject: [PATCH] librpc: update to the latest version, fixes musl compatibility issues (#19445) Signed-off-by: Felix Fietkau SVN-Revision: 45366 --- package/libs/librpc/Makefile | 4 +- .../libs/librpc/patches/100-compat_fix.patch | 214 ------------ .../libs/librpc/patches/110-musl_fixes.patch | 330 ------------------ 3 files changed, 2 insertions(+), 546 deletions(-) delete mode 100644 package/libs/librpc/patches/100-compat_fix.patch delete mode 100644 package/libs/librpc/patches/110-musl_fixes.patch diff --git a/package/libs/librpc/Makefile b/package/libs/librpc/Makefile index d68e3609da..9ea2452f1c 100644 --- a/package/libs/librpc/Makefile +++ b/package/libs/librpc/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=librpc -PKG_VERSION:=0.9.32-rc2 +PKG_VERSION:=2015-04-10 PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=git://nbd.name/uclibc-rpc.git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=0a2179bbc0844928f2a0ec01dba93d9b5d6d41a7 +PKG_SOURCE_VERSION:=308e9964bfb623773dc0dcc99ef9d18d1551d6ae PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz CMAKE_INSTALL:=1 PKG_USE_MIPS16:=0 diff --git a/package/libs/librpc/patches/100-compat_fix.patch b/package/libs/librpc/patches/100-compat_fix.patch deleted file mode 100644 index a0f03f6e5a..0000000000 --- a/package/libs/librpc/patches/100-compat_fix.patch +++ /dev/null @@ -1,214 +0,0 @@ ---- a/compat.h -+++ /dev/null -@@ -1,32 +0,0 @@ --#ifndef __UCLIBC_COMPAT_H --#define __UCLIBC_COMPAT_H -- --#define _XOPEN_SOURCE --#define _GNU_SOURCE -- --#include --#include -- --#undef __UCLIBC_HAS_THREADS__ --#include --#include -- --#if 0 --#undef __UCLIBC_MUTEX_LOCK --#undef __UCLIBC_MUTEX_UNLOCK --#define __UCLIBC_MUTEX_LOCK(M) pthread_mutex_lock(&(M)) --#define __UCLIBC_MUTEX_UNLOCK(M) pthread_mutex_unlock(&(M)) --#endif -- --#define smallint int -- --#define _(...) __VA_ARGS__ --#define internal_function --#define attribute_hidden --#define attribute_unused --#define attribute_noreturn --#define libc_hidden_def(...) -- --#define __set_errno(_val) errno = _val -- --#endif ---- a/rcmd.c -+++ b/rcmd.c -@@ -85,7 +85,6 @@ static char sccsid[] = "@(#)rcmd.c 8.3 ( - #include - #endif - #include --#include - - - /* some forward declarations */ ---- a/create_xid.c -+++ b/create_xid.c -@@ -28,7 +28,6 @@ - - /* The RPC code is not threadsafe, but new code should be threadsafe. */ - --#include - __UCLIBC_MUTEX_STATIC(mylock, PTHREAD_MUTEX_INITIALIZER); - - static smallint is_initialized; ---- a/getrpcent.c -+++ b/getrpcent.c -@@ -257,7 +257,6 @@ static struct rpcent *interpret(register - - #if defined(__UCLIBC_HAS_REENTRANT_RPC__) - --#include - __UCLIBC_MUTEX_STATIC(mylock, PTHREAD_MUTEX_INITIALIZER); - - ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,7 +1,7 @@ - cmake_minimum_required(VERSION 2.6) - - PROJECT(rpc C) --ADD_DEFINITIONS(-Os -Wall --std=gnu99 -g3 -I. -include compat.h) -+ADD_DEFINITIONS(-Os -Wall --std=gnu99 -g3 -I. -include rpc/compat.h) - - FILE(GLOB SOURCES *.c) - ---- a/rpc/types.h -+++ b/rpc/types.h -@@ -33,6 +33,8 @@ - #ifndef _RPC_TYPES_H - #define _RPC_TYPES_H 1 - -+#include "compat.h" -+ - #ifdef _LIBC - /* Some adjustments to make the libc source from glibc - * compile more easily with uClibc... */ ---- a/clnt_perror.c -+++ b/clnt_perror.c -@@ -246,7 +246,7 @@ clnt_sperror (CLIENT * rpch, const char - - case RPC_CANTSEND: - case RPC_CANTRECV: -- __glibc_strerror_r (e.re_errno, chrbuf, sizeof chrbuf); -+ strerror_r (e.re_errno, chrbuf, sizeof chrbuf); - len = sprintf (str, "; errno = %s", chrbuf); - str += len; - break; -@@ -336,7 +336,7 @@ clnt_spcreateerror (const char *msg) - (void) strcpy(cp, " - "); - cp += strlen(cp); - -- __glibc_strerror_r (ce->cf_error.re_errno, chrbuf, sizeof chrbuf); -+ strerror_r (ce->cf_error.re_errno, chrbuf, sizeof chrbuf); - (void) strcpy(cp, chrbuf); - cp += strlen(cp); - break; ---- a/rpc_thread.c -+++ b/rpc_thread.c -@@ -13,9 +13,6 @@ - - #ifdef __UCLIBC_HAS_THREADS__ - --#include --#include -- - /* Variable used in non-threaded applications or for the first thread. */ - static struct rpc_thread_variables __libc_tsd_RPC_VARS_mem; - __libc_tsd_define (, RPC_VARS) -@@ -52,16 +49,17 @@ rpc_thread_multi (void) - __libc_tsd_set (RPC_VARS, &__libc_tsd_RPC_VARS_mem); - } - -+__UCLIBC_MUTEX_STATIC(mylock, PTHREAD_MUTEX_INITIALIZER); - - struct rpc_thread_variables attribute_hidden * - __rpc_thread_variables (void) - { -- __libc_once_define (static, once); - struct rpc_thread_variables *tvp; - -+ __UCLIBC_MUTEX_LOCK(mylock); - tvp = __libc_tsd_get (RPC_VARS); - if (tvp == NULL) { -- __libc_once (once, rpc_thread_multi); -+ rpc_thread_multi(); - tvp = __libc_tsd_get (RPC_VARS); - if (tvp == NULL) { - tvp = calloc (1, sizeof *tvp); -@@ -71,6 +69,7 @@ __rpc_thread_variables (void) - tvp = __libc_tsd_get (RPC_VARS); - } - } -+ __UCLIBC_MUTEX_UNLOCK(mylock); - return tvp; - } - ---- /dev/null -+++ b/rpc/compat.h -@@ -0,0 +1,53 @@ -+#ifndef __UCLIBC_COMPAT_H -+#define __UCLIBC_COMPAT_H -+ -+#define _XOPEN_SOURCE -+#define _GNU_SOURCE -+ -+#include -+#include -+ -+#ifndef __UCLIBC_HAS_THREADS__ -+#define __UCLIBC_HAS_THREADS__ -+#endif -+ -+#include -+#include -+ -+#ifdef __UCLIBC__ -+#include -+#else -+#undef __UCLIBC_MUTEX_STATIC -+#undef __UCLIBC_MUTEX_LOCK -+#undef __UCLIBC_MUTEX_UNLOCK -+#define __UCLIBC_MUTEX_STATIC(M,I) static pthread_mutex_t M = I -+#define __UCLIBC_MUTEX_LOCK(M) pthread_mutex_lock(&(M)) -+#define __UCLIBC_MUTEX_UNLOCK(M) pthread_mutex_unlock(&(M)) -+#endif -+ -+#define smallint int -+ -+#define _(...) __VA_ARGS__ -+#define internal_function -+#define attribute_hidden -+#define attribute_unused -+#define attribute_noreturn -+#define libc_hidden_def(...) -+ -+#ifndef libc_hidden_proto -+#define libc_hidden_proto(name, attrs...) -+#endif -+ -+#define __set_errno(_val) errno = _val -+ -+# define attribute_tls_model_ie __attribute__ ((tls_model ("initial-exec"))) -+ -+# define __libc_tsd_define(CLASS, KEY) \ -+ CLASS __thread void *__libc_tsd_##KEY attribute_tls_model_ie; -+ -+# define __libc_tsd_address(KEY) (&__libc_tsd_##KEY) -+# define __libc_tsd_get(KEY) (__libc_tsd_##KEY) -+# define __libc_tsd_set(KEY, VALUE) (__libc_tsd_##KEY = (VALUE)) -+ -+ -+#endif ---- a/rpc/netdb.h -+++ b/rpc/netdb.h -@@ -41,6 +41,8 @@ - #define __need_size_t - #include - -+#include "types.h" -+ - __BEGIN_DECLS - - struct rpcent diff --git a/package/libs/librpc/patches/110-musl_fixes.patch b/package/libs/librpc/patches/110-musl_fixes.patch deleted file mode 100644 index 969f3e7b22..0000000000 --- a/package/libs/librpc/patches/110-musl_fixes.patch +++ /dev/null @@ -1,330 +0,0 @@ ---- 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 - -- 2.25.1