summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2000-03-22 06:04:32 +0000
committerRoland McGrath <roland@gnu.org>2000-03-22 06:04:32 +0000
commit2ae13e200c9d032a98e184f7aca5288d572c7251 (patch)
treef017d31d4475f9d50666676c5e5f2b1fe5383b13
parent42f76b6bd7a3134573ddd0661e89fe7b23540de2 (diff)
downloadglibc-2ae13e200c9d032a98e184f7aca5288d572c7251.tar.gz
(compat_symbol): New macro.
* sysdeps/gnu/siglist.c: Use new SHLIB_COMPAT convention, and use compat_symbol macro.
-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)