diff options
Diffstat (limited to 'libpthread/nptl/forward.c')
-rw-r--r-- | libpthread/nptl/forward.c | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/libpthread/nptl/forward.c b/libpthread/nptl/forward.c index 5b71f8e67..4c5ada349 100644 --- a/libpthread/nptl/forward.c +++ b/libpthread/nptl/forward.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -21,22 +21,24 @@ #include <pthreadP.h> #include <signal.h> #include <stdlib.h> + #include <atomic.h> #include <sysdep.h> /* Pointers to the libc functions. */ struct pthread_functions __libc_pthread_functions attribute_hidden; +int __libc_pthread_functions_init attribute_hidden; #define FORWARD2(name, rettype, decl, params, defaction) \ rettype \ name decl \ { \ - if (__libc_pthread_functions.ptr_##name == NULL) \ + if (!__libc_pthread_functions_init) \ defaction; \ \ - return __libc_pthread_functions.ptr_##name params; \ + return PTHFCT_CALL (ptr_##name, params); \ } #define FORWARD(name, decl, params, defretval) \ @@ -123,34 +125,13 @@ FORWARD (pthread_setschedparam, FORWARD (pthread_mutex_destroy, (pthread_mutex_t *mutex), (mutex), 0) -libc_hidden_proto(pthread_mutex_init) FORWARD (pthread_mutex_init, (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr), (mutex, mutexattr), 0) -strong_alias(pthread_mutex_init, __pthread_mutex_init) -libc_hidden_def(pthread_mutex_init) - -libc_hidden_proto(pthread_mutex_trylock) -FORWARD (pthread_mutex_trylock, (pthread_mutex_t *mutex), (mutex), 0) -strong_alias(pthread_mutex_trylock, __pthread_mutex_trylock) -libc_hidden_def(pthread_mutex_trylock) -libc_hidden_proto(pthread_mutex_lock) FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0) -strong_alias(pthread_mutex_lock, __pthread_mutex_lock) -libc_hidden_def(pthread_mutex_lock) -libc_hidden_proto(pthread_mutex_unlock) FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0) -strong_alias(pthread_mutex_unlock, __pthread_mutex_unlock) -libc_hidden_def(pthread_mutex_unlock) - -FORWARD (pthread_mutexattr_init, (pthread_mutexattr_t *attr), (attr), 0) - -FORWARD (pthread_mutexattr_destroy, (pthread_mutexattr_t *attr), (attr), 0) - -FORWARD (pthread_mutexattr_settype, (pthread_mutexattr_t *attr, int kind), - (attr, kind), 0) FORWARD2 (pthread_self, pthread_t, (void), (), return 0) @@ -163,7 +144,8 @@ FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0) #define return /* value is void */ FORWARD2(__pthread_unwind, - void attribute_hidden __attribute ((noreturn)) __cleanup_fct_attribute, + void attribute_hidden __attribute ((noreturn)) __cleanup_fct_attribute + attribute_compat_text_section, (__pthread_unwind_buf_t *buf), (buf), { /* We cannot call abort() here. */ INTERNAL_SYSCALL_DECL (err); |