diff options
author | Peter S. Mazinger <ps.m@gmx.net> | 2011-05-08 00:23:14 +0200 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2012-06-15 14:00:44 +0200 |
commit | 1d2dbb9eb220f313ebc712f1c69c611f6867da54 (patch) | |
tree | 32a61cc34674d13ba7b1c3e0aaf22ae8af178644 | |
parent | 27cfef649da3b51dd37f63a15797f7ba26bd2d95 (diff) |
linuxthreads: guard *tsd* related stuff correctly
Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-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); |