This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
It doesn't break build-shared or build-static. 2000-06-27 Greg McGary <greg@mcgary.org> * elf/dl-open.c (_dl_sysdep_start): Wrap weak_extern decl in BP_SYM (). * include/libc-symbols.h (weak_extern): Add extra level of expansion. (symbol_version, default_symbol_version): Factor redundant definitions out of conditional. * linuxthreads/sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak extern declarations of pthread functions that have pointers in their return+arg signatures. Index: elf/dl-open.c =================================================================== RCS file: /cvs/glibc/libc/elf/dl-open.c,v retrieving revision 1.54 diff -u -p -r1.54 dl-open.c --- dl-open.c 2000/06/10 03:54:51 1.54 +++ dl-open.c 2000/06/27 15:46:50 @@ -28,6 +28,7 @@ #include <sys/param.h> #include <bits/libc-lock.h> #include <ldsodefs.h> +#include <bp-sym.h> #include <dl-dst.h> @@ -36,7 +37,7 @@ extern ElfW(Addr) _dl_sysdep_start (void void (*dl_main) (const ElfW(Phdr) *phdr, ElfW(Word) phnum, ElfW(Addr) *user_entry)); -weak_extern (_dl_sysdep_start) +weak_extern (BP_SYM (_dl_sysdep_start)) /* This function is used to unload the cache file if necessary. */ extern void _dl_unload_cache (void); Index: include/libc-symbols.h =================================================================== RCS file: /cvs/glibc/libc/include/libc-symbols.h,v retrieving revision 1.15 diff -u -p -r1.15 libc-symbols.h --- libc-symbols.h 2000/06/27 06:19:52 1.15 +++ libc-symbols.h 2000/06/27 15:46:50 @@ -97,10 +97,11 @@ extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))); /* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined). */ +# define weak_extern(symbol) _weak_extern (symbol) # ifdef HAVE_ASM_WEAKEXT_DIRECTIVE -# define weak_extern(symbol) asm (".weakext " __SYMBOL_PREFIX #symbol); +# define _weak_extern(symbol) asm (".weakext " __SYMBOL_PREFIX #symbol); # else -# define weak_extern(symbol) asm (".weak " __SYMBOL_PREFIX #symbol); +# define _weak_extern(symbol) asm (".weak " __SYMBOL_PREFIX #symbol); # endif # else @@ -267,22 +268,18 @@ #endif /* Have GNU ld. */ #if DO_VERSIONING -# ifdef __ASSEMBLER__ -# define symbol_version(real, name, version) \ +# define symbol_version(real, name, version) \ _symbol_version(real, name, version) +# define default_symbol_version(real, name, version) \ + _default_symbol_version(real, name, version) +# ifdef __ASSEMBLER__ # define _symbol_version(real, name, version) \ .symver real, name##@##version -# define default_symbol_version(real, name, version) \ - _default_symbol_version(real, name, version) # define _default_symbol_version(real, name, version) \ .symver real, name##@##@##version # else -# define symbol_version(real, name, version) \ - _symbol_version(real, name, version) # define _symbol_version(real, name, version) \ __asm__ (".symver " #real "," #name "@" #version) -# define default_symbol_version(real, name, version) \ - _default_symbol_version(real, name, version) # define _default_symbol_version(real, name, version) \ __asm__ (".symver " #real "," #name "@@" #version) # endif Index: linuxthreads/sysdeps/pthread/bits/libc-lock.h =================================================================== RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/pthread/bits/libc-lock.h,v retrieving revision 1.13 diff -u -p -r1.13 libc-lock.h --- libc-lock.h 2000/04/21 03:40:31 1.13 +++ libc-lock.h 2000/06/27 15:46:51 @@ -246,53 +246,54 @@ extern int __pthread_atfork (void (*__pr /* Make the pthread functions weak so that we can elide them from single-threaded processes. */ #ifndef __NO_WEAK_PTHREAD_ALIASES +# include <bp-sym.h> # ifdef weak_extern -weak_extern (__pthread_mutex_init) -weak_extern (__pthread_mutex_destroy) -weak_extern (__pthread_mutex_lock) -weak_extern (__pthread_mutex_trylock) -weak_extern (__pthread_mutex_unlock) -weak_extern (__pthread_mutexattr_init) -weak_extern (__pthread_mutexattr_destroy) -weak_extern (__pthread_mutexattr_settype) -weak_extern (__pthread_rwlock_init) -weak_extern (__pthread_rwlock_destroy) -weak_extern (__pthread_rwlock_rdlock) -weak_extern (__pthread_rwlock_tryrdlock) -weak_extern (__pthread_rwlock_wrlock) -weak_extern (__pthread_rwlock_trywrlock) -weak_extern (__pthread_rwlock_unlock) -weak_extern (__pthread_key_create) -weak_extern (__pthread_setspecific) -weak_extern (__pthread_getspecific) -weak_extern (__pthread_once) +weak_extern (BP_SYM (__pthread_mutex_init)) +weak_extern (BP_SYM (__pthread_mutex_destroy)) +weak_extern (BP_SYM (__pthread_mutex_lock)) +weak_extern (BP_SYM (__pthread_mutex_trylock)) +weak_extern (BP_SYM (__pthread_mutex_unlock)) +weak_extern (BP_SYM (__pthread_mutexattr_init)) +weak_extern (BP_SYM (__pthread_mutexattr_destroy)) +weak_extern (BP_SYM (__pthread_mutexattr_settype)) +weak_extern (BP_SYM (__pthread_rwlock_init)) +weak_extern (BP_SYM (__pthread_rwlock_destroy)) +weak_extern (BP_SYM (__pthread_rwlock_rdlock)) +weak_extern (BP_SYM (__pthread_rwlock_tryrdlock)) +weak_extern (BP_SYM (__pthread_rwlock_wrlock)) +weak_extern (BP_SYM (__pthread_rwlock_trywrlock)) +weak_extern (BP_SYM (__pthread_rwlock_unlock)) +weak_extern (BP_SYM (__pthread_key_create)) +weak_extern (BP_SYM (__pthread_setspecific)) +weak_extern (BP_SYM (__pthread_getspecific)) +weak_extern (BP_SYM (__pthread_once)) weak_extern (__pthread_initialize) weak_extern (__pthread_atfork) -weak_extern (_pthread_cleanup_push_defer) -weak_extern (_pthread_cleanup_pop_restore) +weak_extern (BP_SYM (_pthread_cleanup_push_defer)) +weak_extern (BP_SYM (_pthread_cleanup_pop_restore)) # else -# pragma weak __pthread_mutex_init -# pragma weak __pthread_mutex_destroy -# pragma weak __pthread_mutex_lock -# pragma weak __pthread_mutex_trylock -# pragma weak __pthread_mutex_unlock -# pragma weak __pthread_mutexattr_init -# pragma weak __pthread_mutexattr_destroy -# pragma weak __pthread_mutexattr_settype -# pragma weak __pthread_rwlock_destroy -# pragma weak __pthread_rwlock_rdlock -# pragma weak __pthread_rwlock_tryrdlock -# pragma weak __pthread_rwlock_wrlock -# pragma weak __pthread_rwlock_trywrlock -# pragma weak __pthread_rwlock_unlock -# pragma weak __pthread_key_create -# pragma weak __pthread_setspecific -# pragma weak __pthread_getspecific -# pragma weak __pthread_once +# pragma weak BP_SYM (__pthread_mutex_init) +# pragma weak BP_SYM (__pthread_mutex_destroy) +# pragma weak BP_SYM (__pthread_mutex_lock) +# pragma weak BP_SYM (__pthread_mutex_trylock) +# pragma weak BP_SYM (__pthread_mutex_unlock) +# pragma weak BP_SYM (__pthread_mutexattr_init) +# pragma weak BP_SYM (__pthread_mutexattr_destroy) +# pragma weak BP_SYM (__pthread_mutexattr_settype) +# pragma weak BP_SYM (__pthread_rwlock_destroy) +# pragma weak BP_SYM (__pthread_rwlock_rdlock) +# pragma weak BP_SYM (__pthread_rwlock_tryrdlock) +# pragma weak BP_SYM (__pthread_rwlock_wrlock) +# pragma weak BP_SYM (__pthread_rwlock_trywrlock) +# pragma weak BP_SYM (__pthread_rwlock_unlock) +# pragma weak BP_SYM (__pthread_key_create) +# pragma weak BP_SYM (__pthread_setspecific) +# pragma weak BP_SYM (__pthread_getspecific) +# pragma weak BP_SYM (__pthread_once) # pragma weak __pthread_initialize # pragma weak __pthread_atfork -# pragma weak _pthread_cleanup_push_defer -# pragma weak _pthread_cleanup_pop_restore +# pragma weak BP_SYM (_pthread_cleanup_push_defer) +# pragma weak BP_SYM (_pthread_cleanup_pop_restore) # endif #endif
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |