diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | include/shlib-compat.h | 14 | ||||
-rw-r--r-- | 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 <drepper@redhat.com> + + * include/shlib-compat.h (versioned_symbol): Give preprocessor the + chance to expand VERSION_##lib##_##version. + 2000-03-21 Jakub Jelinek <jakub@redhat.com> * 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 <abi-versions.h> /* header generated by abi-versions.awk */ +# include <abi-versions.h> /* 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) |