aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/pthread/bits
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-12-28 10:24:40 +0000
committerUlrich Drepper <drepper@redhat.com>2002-12-28 10:24:40 +0000
commit270d9d472952a8923fa8a6d9d830fea77f4b838f (patch)
treed5fa14a0a0fd3cdc509580686af55bc93ceb93e7 /linuxthreads/sysdeps/pthread/bits
parentafb2e954009b7ff48379a254926730b303ce7bab (diff)
downloadglibc-270d9d472952a8923fa8a6d9d830fea77f4b838f.zip
glibc-270d9d472952a8923fa8a6d9d830fea77f4b838f.tar.gz
glibc-270d9d472952a8923fa8a6d9d830fea77f4b838f.tar.bz2
Update.
* inet/herrno.c (__h_errno_location): Remove. * inet/Makefile (routines): Add herrno-loc. * resolv/res_libc.c (__res_state): Remove. * resolv/Makefile (routines): Add res-state. * sysdeps/generic/herrno-loc.c: New file. * sysdeps/generic/res-state.c: New file. 2002-12-27 Jakub Jelinek <jakub@redhat.com>
Diffstat (limited to 'linuxthreads/sysdeps/pthread/bits')
-rw-r--r--linuxthreads/sysdeps/pthread/bits/libc-tsd.h40
1 files changed, 15 insertions, 25 deletions
diff --git a/linuxthreads/sysdeps/pthread/bits/libc-tsd.h b/linuxthreads/sysdeps/pthread/bits/libc-tsd.h
index e37faf6..04cf7c1 100644
--- a/linuxthreads/sysdeps/pthread/bits/libc-tsd.h
+++ b/linuxthreads/sysdeps/pthread/bits/libc-tsd.h
@@ -20,16 +20,7 @@
#ifndef _BITS_LIBC_TSD_H
#define _BITS_LIBC_TSD_H 1
-/* Fast thread-specific data internal to libc. */
-enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0,
- _LIBC_TSD_KEY_DL_ERROR,
- _LIBC_TSD_KEY_RPC_VARS,
- _LIBC_TSD_KEY_LOCALE,
- _LIBC_TSD_KEY_CTYPE_B,
- _LIBC_TSD_KEY_CTYPE_TOLOWER,
- _LIBC_TSD_KEY_CTYPE_TOUPPER,
- _LIBC_TSD_KEY_N };
-
+#include <linuxthreads/descr.h>
#include <tls.h>
#if USE_TLS && HAVE___THREAD
@@ -39,26 +30,25 @@ enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0,
#else
-extern void *(*__libc_internal_tsd_get) (enum __libc_tsd_key_t) __THROW;
-extern int (*__libc_internal_tsd_set) (enum __libc_tsd_key_t,
- __const void *) __THROW;
-extern void **(*const __libc_internal_tsd_address) (enum __libc_tsd_key_t)
- __THROW __attribute__ ((__const__));
+# include <bits/libc-lock.h>
-#define __libc_tsd_address(KEY) \
- (__libc_internal_tsd_address != NULL \
- ? __libc_internal_tsd_address (_LIBC_TSD_KEY_##KEY) \
- : &__libc_tsd_##KEY##_data)
+# ifndef SHARED
+weak_extern (__pthread_internal_tsd_address)
+weak_extern (__pthread_internal_tsd_get)
+weak_extern (__pthread_internal_tsd_set)
+# endif
#define __libc_tsd_define(CLASS, KEY) CLASS void *__libc_tsd_##KEY##_data;
+#define __libc_tsd_address(KEY) \
+ __libc_maybe_call2 (pthread_internal_tsd_address, \
+ (_LIBC_TSD_KEY_##KEY), &__libc_tsd_##KEY##_data)
#define __libc_tsd_get(KEY) \
- (__libc_internal_tsd_get != NULL \
- ? __libc_internal_tsd_get (_LIBC_TSD_KEY_##KEY) \
- : __libc_tsd_##KEY##_data)
+ __libc_maybe_call2 (pthread_internal_tsd_get, \
+ (_LIBC_TSD_KEY_##KEY), __libc_tsd_##KEY##_data)
#define __libc_tsd_set(KEY, VALUE) \
- (__libc_internal_tsd_set != NULL \
- ? __libc_internal_tsd_set (_LIBC_TSD_KEY_##KEY, (VALUE)) \
- : ((__libc_tsd_##KEY##_data = (VALUE)), 0))
+ __libc_maybe_call2 (pthread_internal_tsd_set, \
+ (_LIBC_TSD_KEY_##KEY, (VALUE)), \
+ (__libc_tsd_##KEY##_data = (VALUE), 0))
#endif