summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2015-04-23 20:46:59 +0200
committerMark Wielaard <mjw@redhat.com>2015-04-23 21:39:41 +0200
commitbafacacaf7659a4933604662daba26a480b29a8d (patch)
tree5f8884d6866942089011328ecb45c4a89ac780a1 /lib
parentf98b99db09f80666d5cf491a2ce126a59af0fdb1 (diff)
downloadelfutils-bafacacaf7659a4933604662daba26a480b29a8d.tar.gz
Allow disabling symbol versioning at configure time
Due to missing symbol versioning support in uClibc calls to versioned functions that internally call different version of themselves results in infinite recursion. Introduce macro SYMBOL_VERSIONING and use it instead of plain SHARED to decide whether symbol versioning is needed. Control this macro definition with new configure option --disable-symbol-versioning. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/ChangeLog4
-rw-r--r--lib/eu-config.h6
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 44152131..166f047d 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,7 @@
+2015-04-23 Max Filippov <jcmvbkbc@gmail.com>
+
+ * eu-config.h: Use SYMBOL_VERSIONING as guard.
+
2014-01-17 Lei Zhang <thestig@google.com>
* crc32_file.c: Include config.h.
diff --git a/lib/eu-config.h b/lib/eu-config.h
index 3afff26a..5bb21c14 100644
--- a/lib/eu-config.h
+++ b/lib/eu-config.h
@@ -163,7 +163,7 @@ asm (".section predict_data, \"aw\"; .previous\n"
#define ELFUTILS_HEADER(name) <lib##name.h>
-#ifdef SHARED
+#ifdef SYMBOL_VERSIONING
# define OLD_VERSION(name, version) \
asm (".globl _compat." #version "." #name "\n" \
"_compat." #version "." #name " = " #name "\n" \
@@ -181,8 +181,8 @@ asm (".section predict_data, \"aw\"; .previous\n"
# define OLD_VERSION(name, version) /* Nothing for static linking. */
# define NEW_VERSION(name, version) /* Nothing for static linking. */
# define COMPAT_VERSION_NEWPROTO(name, version, prefix) \
- error "should use #ifdef SHARED"
-# define COMPAT_VERSION(name, version, prefix) error "should use #ifdef SHARED"
+ error "should use #ifdef SYMBOL_VERSIONING"
+# define COMPAT_VERSION(name, version, prefix) error "should use #ifdef SYMBOL_VERSIONING"
#endif