about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--include/shlib-compat.h14
-rw-r--r--linuxthreads/pthread.c4
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)