From cb162e13ed384f33f2712b4fc976e70a1fa7d9c4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 21 Mar 2000 22:03:48 +0000 Subject: [PATCH] Update. 2000-03-21 Ulrich Drepper * include/shlib-compat.h (versioned_symbol): Give preprocessor the chance to expand VERSION_##lib##_##version. --- ChangeLog | 5 +++++ include/shlib-compat.h | 14 ++++++++------ linuxthreads/pthread.c | 4 ++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 240977f3c4..e7b0e25096 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-03-21 Ulrich Drepper + + * include/shlib-compat.h (versioned_symbol): Give preprocessor the + chance to expand VERSION_##lib##_##version. + 2000-03-21 Jakub Jelinek * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h: Clean up namespace. diff --git a/include/shlib-compat.h b/include/shlib-compat.h index 50fba1b957..a125d907c1 100644 --- a/include/shlib-compat.h +++ b/include/shlib-compat.h @@ -22,7 +22,7 @@ #if defined HAVE_ELF && defined PIC && defined DO_VERSIONING -#include /* header generated by abi-versions.awk */ +# include /* header generated by abi-versions.awk */ /* The file abi-versions.h (generated by scripts/abi-versions.awk) defines symbols like `ABI_libm_GLIBC_2_0' to either 1 or 0 indicating whether or @@ -32,7 +32,7 @@ has been superseded by a newer version. The compatibility code should be conditionalized with `#if SHLIB_COMPAT (libm, GLIBC_2_0)'. */ -#define SHLIB_COMPAT(lib, version) ABI_##lib##_##version +# define SHLIB_COMPAT(lib, version) ABI_##lib##_##version /* That header also defines symbols like `VERSION_libm_GLIBC_2_1' to the version set name to use for e.g. symbols first introduced into @@ -43,16 +43,18 @@ i.e. either GLIBC_2.1 or the "earliest version" specified in shlib-versions if that is newer. */ -#define versioned_symbol(lib, local, symbol, version) \ - default_symbol_version (local, symbol, VERSION_##lib##_##version) +# define versioned_symbol(lib, local, symbol, version) \ + versioned_symbol2 (local, symbol, VERSION_##lib##_##version) +# define versioned_symbol2(local, symbol, name) \ + default_symbol_version (local, symbol, name) #else /* Not compiling ELF shared libraries at all, so never any old versions. */ -#define SHLIB_COMPAT(lib, version) 0 +# define SHLIB_COMPAT(lib, version) 0 /* No versions to worry about, just make this the global definition. */ -#define versioned_symbol(lib, local, symbol, version) \ +# define versioned_symbol(lib, local, symbol, version) \ weak_alias (local, symbol) #endif diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index 57bc15e512..ce26f0580b 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -389,13 +389,13 @@ static void pthread_initialize(void) /* Register an exit function to kill all other threads. */ /* Do it early so that user-registered atexit functions are called before pthread_exit_process. */ - if (__dso_handle) + if (&__dso_handle != NULL) /* The cast is a bit unclean. The function expects two arguments but we can only pass one. Fortunately this is not a problem since the second argument of `pthread_exit_process' is simply ignored. */ __cxa_atexit((void (*) (void *)) pthread_exit_process, NULL, __dso_handle); else - on_exit (pthread_exit_process, NULL); + __on_exit (pthread_exit_process, NULL); } void __pthread_initialize(void)