| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- --- 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
|