aboutsummaryrefslogtreecommitdiff
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 240977f..e7b0e25 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 50fba1b..a125d90 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 57bc15e..ce26f05 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)