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
#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
/* 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