diff options
-rw-r--r-- | libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h | 7 | ||||
-rw-r--r-- | libpthread/linuxthreads/internals.h | 2 | ||||
-rw-r--r-- | libpthread/linuxthreads/pthread.c | 2 | ||||
-rw-r--r-- | libpthread/linuxthreads/specific.c | 2 | ||||
-rw-r--r-- | libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h | 2 |
5 files changed, 9 insertions, 6 deletions
diff --git a/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h b/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h index 31d859ec3..bee7eb1be 100644 --- a/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h +++ b/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h @@ -30,12 +30,11 @@ enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0, _LIBC_TSD_KEY_CTYPE_TOUPPER, _LIBC_TSD_KEY_N }; -#include <sys/cdefs.h> -#include <tls.h> - +#include <features.h> #include <linuxthreads.old/internals.h> -#if defined(USE_TLS) && USE_TLS && HAVE___THREAD +#ifdef __UCLIBC_HAS_TLS__ +#include <tls.h> /* When __thread works, the generic definition is what we want. */ # include <sysdeps/generic/bits/libc-tsd.h> diff --git a/libpthread/linuxthreads/internals.h b/libpthread/linuxthreads/internals.h index e855f5062..4ce39fb4b 100644 --- a/libpthread/linuxthreads/internals.h +++ b/libpthread/linuxthreads/internals.h @@ -438,10 +438,12 @@ extern void __linuxthreads_reap_event (void); extern void __pthread_initialize (void); /* TSD. */ +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__ extern int __pthread_internal_tsd_set (int key, const void * pointer); extern void * __pthread_internal_tsd_get (int key); extern void ** __attribute__ ((__const__)) __pthread_internal_tsd_address (int key); +#endif /* Sighandler wrappers. */ extern void __pthread_sighandler(int signo, SIGCONTEXT ctx); diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c index 043146bfa..5dccd939f 100644 --- a/libpthread/linuxthreads/pthread.c +++ b/libpthread/linuxthreads/pthread.c @@ -230,7 +230,7 @@ extern void __libc_setup_tls (size_t tcbsize, size_t tcbalign); struct pthread_functions __pthread_functions = { -#ifndef __UCLIBC_HAS_TLS__ +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__ .ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set, .ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get, .ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address, diff --git a/libpthread/linuxthreads/specific.c b/libpthread/linuxthreads/specific.c index 4a6dad308..0daad83f5 100644 --- a/libpthread/linuxthreads/specific.c +++ b/libpthread/linuxthreads/specific.c @@ -212,7 +212,7 @@ void __pthread_destroy_specifics() __pthread_unlock(THREAD_GETMEM(self, p_lock)); } -#ifndef __UCLIBC_HAS_TLS__ +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__ /* Thread-specific data for libc. */ diff --git a/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h b/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h index 44677e886..04d45467c 100644 --- a/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h +++ b/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h @@ -72,10 +72,12 @@ struct pthread_functions void (*ptr_pthread_cleanup_upto) (__jmp_buf target, char *targetframe); pthread_descr (*ptr_pthread_thread_self) (void); +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__ int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer); void * (*ptr_pthread_internal_tsd_get) (int key); void ** __attribute__ ((__const__)) (*ptr_pthread_internal_tsd_address) (int key); +#endif int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act, struct sigaction *oact); int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig); |