about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--include/shlib-compat.h16
2 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 0d96394ac6..b29e4dc2fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2006-10-07  Ulrich Drepper  <drepper@redhat.com>
 
+	* include/shlib-compat.h (SHLIB_COMPAT): Expand parameters before use.
+	(versioned_symbol): Likewise.
+	(compat_symbol): Likewise.
+
 	* po/tr.po: Update from translation team.
 
 2006-10-06  Ulrich Drepper  <drepper@redhat.com>
diff --git a/include/shlib-compat.h b/include/shlib-compat.h
index 1e6d1782d9..79246dff25 100644
--- a/include/shlib-compat.h
+++ b/include/shlib-compat.h
@@ -1,5 +1,5 @@
 /* Macros for managing ABI-compatibility definitions using ELF symbol versions.
-   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2002, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -44,6 +44,8 @@
    in the GLIBC_2.0 version and obsoleted in the GLIBC_2.2 version.  */
 
 # define SHLIB_COMPAT(lib, introduced, obsoleted)			      \
+  _SHLIB_COMPAT (lib, introduced, obsoleted)
+# define _SHLIB_COMPAT(lib, introduced, obsoleted)			      \
   ((IS_IN_##lib - 0)							      \
    && (!(ABI_##lib##_##obsoleted - 0)					      \
        || ((ABI_##lib##_##introduced - 0) < (ABI_##lib##_##obsoleted - 0))))
@@ -62,13 +64,17 @@
    shlib-versions if that is newer.  */
 
 # define versioned_symbol(lib, local, symbol, version) \
-  versioned_symbol_1 (local, symbol, VERSION_##lib##_##version)
-# define versioned_symbol_1(local, symbol, name) \
+  versioned_symbol_1 (lib, local, symbol, version)
+# define versioned_symbol_1(lib, local, symbol, version) \
+  versioned_symbol_2 (local, symbol, VERSION_##lib##_##version)
+# define versioned_symbol_2(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) \
+  compat_symbol_1 (lib, local, symbol, version)
+# define compat_symbol_1(lib, local, symbol, version) \
+  compat_symbol_2 (local, symbol, VERSION_##lib##_##version)
+# define compat_symbol_2(local, symbol, name) \
   symbol_version (local, symbol, name)
 
 #else