diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-01-04 03:45:56 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-01-04 03:45:56 +0000 |
commit | e9264e49f3777c298e8a734cf4483c26b2602584 (patch) | |
tree | bc99d793d97a1d73bc55a256f6983c5d26fcc925 /libc/misc/pthread/weaks.c | |
parent | cd662e64be1b10615e2fb44d5f3dc97eca905a31 (diff) |
update pthread weak handling to the style glibc uses
Diffstat (limited to 'libc/misc/pthread/weaks.c')
-rw-r--r-- | libc/misc/pthread/weaks.c | 102 |
1 files changed, 7 insertions, 95 deletions
diff --git a/libc/misc/pthread/weaks.c b/libc/misc/pthread/weaks.c index 4b9e02672..20a98a3fe 100644 --- a/libc/misc/pthread/weaks.c +++ b/libc/misc/pthread/weaks.c @@ -18,109 +18,21 @@ Boston, MA 02111-1307, USA. */ #define _GNU_SOURCE -#include <errno.h> -#include <limits.h> -#include <stdlib.h> +#include <libc-internal.h> -/**********************************************************************/ -/* Weaks for application/library use. +/* Weaks for internal library use only. * * We need to define weaks here to cover all the pthread functions that - * libc itself will use so that we aren't forced to link libc.so to - * libpthread.so. When an application doesn't use pthreads support, - * the locking functions used by libc itself basically become no-ops. - * However, if the application uses pthreads, then it will pull in - * libpthread.so whose symbols will override these weaks magically - * turning the internal libc mutex calls from no-ops to real locking - * calls. + * libc itself will use so that we aren't forced to link libc against + * libpthread. This file is only used in libc.a and since we have + * weaks here, they will be automatically overridden by libpthread.a + * if it gets linked in. */ -/* glibc itself defines all these, but we don't need them in uClibc - * - * Verified by comparing to glibc's linuxthreads/forward.c and defined - * only those that are in the glibc abi. - * The commented aliases are ones that were previously defined in uClibc - * and which I left in for documentation. - */ - -static int __pthread_return_0 __P ((void)); +static int __pthread_return_0 (void); static int __pthread_return_0 (void) { return 0; } -/* -weak_alias (__pthread_return_0, pthread_attr_destroy) -weak_alias (__pthread_return_0, pthread_attr_getdetachstate) -weak_alias (__pthread_return_0, pthread_attr_getinheritsched) -weak_alias (__pthread_return_0, pthread_attr_getschedparam) -weak_alias (__pthread_return_0, pthread_attr_getschedpolicy) -weak_alias (__pthread_return_0, pthread_attr_getscope) -weak_alias (__pthread_return_0, pthread_attr_getstackaddr) -weak_alias (__pthread_return_0, pthread_attr_getstacksize) -weak_alias (__pthread_return_0, pthread_attr_init) -weak_alias (__pthread_return_0, pthread_attr_setdetachstate) -weak_alias (__pthread_return_0, pthread_attr_setinheritsched) -weak_alias (__pthread_return_0, pthread_attr_setschedparam) -weak_alias (__pthread_return_0, pthread_attr_setschedpolicy) -weak_alias (__pthread_return_0, pthread_attr_setscope) -weak_alias (__pthread_return_0, pthread_attr_setstackaddr) -weak_alias (__pthread_return_0, pthread_attr_setstacksize) -weak_alias (__pthread_return_0, pthread_cond_broadcast) -weak_alias (__pthread_return_0, pthread_cond_destroy) -weak_alias (__pthread_return_0, pthread_cond_init) -weak_alias (__pthread_return_0, pthread_cond_signal) -weak_alias (__pthread_return_0, pthread_cond_timedwait) -weak_alias (__pthread_return_0, pthread_cond_wait) -weak_alias (__pthread_return_0, pthread_condattr_destroy) -weak_alias (__pthread_return_0, pthread_condattr_init) -weak_alias (__pthread_return_0, pthread_getschedparam) -weak_alias (__pthread_return_0, pthread_getcancelstate) -weak_alias (__pthread_return_0, pthread_getconcurrency) -weak_alias (__pthread_return_0, pthread_mutex_destroy) -weak_alias (__pthread_return_0, pthread_mutex_init) -weak_alias (__pthread_return_0, pthread_mutex_lock) -weak_alias (__pthread_return_0, pthread_mutex_trylock) -weak_alias (__pthread_return_0, pthread_mutex_unlock) -weak_alias (__pthread_return_0, pthread_mutexattr_destroy) -weak_alias (__pthread_return_0, pthread_mutexattr_gettype) -weak_alias (__pthread_return_0, pthread_mutexattr_init) -weak_alias (__pthread_return_0, pthread_mutexattr_settype) -weak_alias (__pthread_return_0, pthread_rwlock_destroy) -weak_alias (__pthread_return_0, pthread_rwlock_init) -weak_alias (__pthread_return_0, pthread_rwlock_rdlock) -weak_alias (__pthread_return_0, pthread_rwlock_tryrdlock) -weak_alias (__pthread_return_0, pthread_rwlock_trywrlock) -weak_alias (__pthread_return_0, pthread_rwlock_unlock) -weak_alias (__pthread_return_0, pthread_rwlock_wrlock) -weak_alias (__pthread_return_0, pthread_rwlockattr_destroy) -weak_alias (__pthread_return_0, pthread_rwlockattr_getpshared) -weak_alias (__pthread_return_0, pthread_rwlockattr_init) -weak_alias (__pthread_return_0, pthread_rwlockattr_setpshared) -weak_alias (__pthread_return_0, pthread_self) -weak_alias (__pthread_return_0, pthread_setcancelstate) -weak_alias (__pthread_return_0, pthread_setcanceltype) -weak_alias (__pthread_return_0, pthread_setconcurrency) -weak_alias (__pthread_return_0, pthread_setschedparam) - -static int __pthread_return_1 __P ((void)); -static int __pthread_return_1 (void) { return 1; } - -weak_alias (__pthread_return_1, pthread_equal) - -void weak_function pthread_exit (void *retval) -{ - __exit (EXIT_SUCCESS); -} -*/ - -/**********************************************************************/ -/* Weaks used internally by the C library. */ weak_alias (__pthread_return_0, __pthread_mutex_init) weak_alias (__pthread_return_0, __pthread_mutex_lock) weak_alias (__pthread_return_0, __pthread_mutex_trylock) weak_alias (__pthread_return_0, __pthread_mutex_unlock) -#ifdef __UCLIBC_HAS_THREADS_NATIVE__ -weak_alias (__pthread_return_0, pthread_mutexattr_init) -weak_alias (__pthread_return_0, pthread_mutexattr_settype) -weak_alias (__pthread_return_0, pthread_mutexattr_destroy) -#endif - -/**********************************************************************/ |