about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--include/shlib-compat.h12
-rw-r--r--sysdeps/gnu/siglist.c12
3 files changed, 19 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 02135f704f..c51960ba8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,9 +2,12 @@
 
 	* include/shlib-compat.h (SHLIB_COMPAT): Take a third argument,
 	indicating the first version set to obsolete the conditionalized code.
+	(compat_symbol): New macro.
 	* scripts/abi-versions.awk: For subsumed versions, make ABI_* defn's
 	rhs be the ABI_* macro for the subsuming version.  Assign increasing
 	integer values to the ABI_* macros for supported versions.
+	* sysdeps/gnu/siglist.c: Use new SHLIB_COMPAT convention, and use
+	compat_symbol macro.
 
 2000-03-21  Ulrich Drepper  <drepper@redhat.com>
 
diff --git a/include/shlib-compat.h b/include/shlib-compat.h
index c91e6ce489..f0673e7096 100644
--- a/include/shlib-compat.h
+++ b/include/shlib-compat.h
@@ -52,10 +52,15 @@
    shlib-versions if that is newer.  */
 
 # define versioned_symbol(lib, local, symbol, version) \
-  versioned_symbol2 (local, symbol, VERSION_##lib##_##version)
-# define versioned_symbol2(local, symbol, name) \
+  versioned_symbol_1 (local, symbol, VERSION_##lib##_##version)
+# define versioned_symbol_1(local, symbol, name) \
   default_symbol_version (local, symbol, name)
 
+# define compat_symbol(lib, local, symbol, version) \
+  compat_symbol_1 (local, symbol, VERSION_##lib##_##version)
+# define compat_symbol_1(local, symbol, name) \
+  symbol_version (local, symbol, name)
+
 #else
 
 /* Not compiling ELF shared libraries at all, so never any old versions.  */
@@ -65,6 +70,9 @@
 # define versioned_symbol(lib, local, symbol, version) \
   weak_alias (local, symbol)
 
+/* This should not appear outside `#if SHLIB_COMPAT (...)'.  */
+# define compat_symbol(lib, local, symbol, version) ...
+
 #endif
 
 
diff --git a/sysdeps/gnu/siglist.c b/sysdeps/gnu/siglist.c
index 0fc43180fa..0cb30df82f 100644
--- a/sysdeps/gnu/siglist.c
+++ b/sysdeps/gnu/siglist.c
@@ -32,7 +32,7 @@
 #endif
 
 
-#if SHLIB_COMPAT (libc, GLIBC_2_0)
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
 asm (".data; .globl __old_sys_siglist;  __old_sys_siglist:");
 #endif
 
@@ -43,7 +43,7 @@ const char *const __new_sys_siglist[NSIG] =
 #undef init_sig
 };
 
-#if SHLIB_COMPAT (libc, GLIBC_2_0)
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
 asm (".type __old_sys_siglist,@object;.size __old_sys_siglist,"
         OLD_SIGLIST_SIZE_STR "*" PTR_SIZE_STR);
 
@@ -57,7 +57,7 @@ const char *const __new_sys_sigabbrev[NSIG] =
 #undef init_sig
 };
 
-#if SHLIB_COMPAT (libc, GLIBC_2_0)
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
 asm (".type __old_sys_sigabbrev,@object;.size __old_sys_sigabbrev,"
         OLD_SIGLIST_SIZE_STR "*" PTR_SIZE_STR);
 
@@ -65,9 +65,9 @@ extern const char *const *__old_sys_siglist;
 extern const char *const *__old_sys_sigabbrev;
 
 strong_alias (__old_sys_siglist, _old_sys_siglist)
-symbol_version (__old_sys_siglist, _sys_siglist, GLIBC_2.0);
-symbol_version (_old_sys_siglist, sys_siglist, GLIBC_2.0);
-symbol_version (__old_sys_sigabbrev, sys_sigabbrev, GLIBC_2.0);
+compat_symbol (libc, __old_sys_siglist, _sys_siglist, GLIBC_2_0);
+compat_symbol (libc, _old_sys_siglist, sys_siglist, GLIBC_2_0);
+compat_symbol (libc, __old_sys_sigabbrev, sys_sigabbrev, GLIBC_2_0);
 #endif
 
 strong_alias (__new_sys_siglist, _new_sys_siglist)