librpc: update to the latest version, fixes musl compatibility issues (#19445)
[openwrt.git] / package / libs / librpc / patches / 100-compat_fix.patch
diff --git a/package/libs/librpc/patches/100-compat_fix.patch b/package/libs/librpc/patches/100-compat_fix.patch
deleted file mode 100644 (file)
index a0f03f6..0000000
+++ /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 <features.h>
--#include <errno.h>
--
--#undef __UCLIBC_HAS_THREADS__
--#include <bits/uClibc_mutex.h>
--#include <sys/poll.h>
--
--#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 <wchar.h>
- #endif
- #include <sys/uio.h>
--#include <bits/uClibc_alloc.h>
- /* 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 <bits/uClibc_mutex.h>
- __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 <bits/uClibc_mutex.h>
- __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 <bits/libc-tsd.h>
--#include <bits/libc-lock.h>
--
- /* 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 <features.h>
-+#include <errno.h>
-+
-+#ifndef __UCLIBC_HAS_THREADS__
-+#define __UCLIBC_HAS_THREADS__
-+#endif
-+
-+#include <sys/poll.h>
-+#include <pthread.h>
-+
-+#ifdef __UCLIBC__
-+#include <bits/libc-lock.h>
-+#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 <stddef.h>
-+#include "types.h"
-+
- __BEGIN_DECLS
- struct rpcent