diff options
| author | Max Filippov <[email protected]> | 2015-04-23 20:46:59 +0200 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2015-04-23 21:39:41 +0200 |
| commit | bafacacaf7659a4933604662daba26a480b29a8d (patch) | |
| tree | 5f8884d6866942089011328ecb45c4a89ac780a1 /libdwfl | |
| parent | f98b99db09f80666d5cf491a2ce126a59af0fdb1 (diff) | |
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 <[email protected]>
Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'libdwfl')
| -rw-r--r-- | libdwfl/ChangeLog | 9 | ||||
| -rw-r--r-- | libdwfl/core-file.c | 2 | ||||
| -rw-r--r-- | libdwfl/dwfl_module_build_id.c | 2 | ||||
| -rw-r--r-- | libdwfl/dwfl_report_elf.c | 2 |
4 files changed, 12 insertions, 3 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index d4cd3f5a..cbaad852 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,12 @@ +2015-04-23 Max Filippov <[email protected]> + + * core-file.c (_compat_without_executable_dwfl_core_file_report): + Guard with SYMBOL_VERSIONING. + * dwfl_module_build_id.c (_compat_vaddr_at_end_dwfl_module_build_id): + Likewise. + * dwfl_report_elf.c (_compat_without_add_p_vaddr_dwfl_report_elf): + Likewise. + 2015-04-02 Mark Wielaard <[email protected]> * segment.c (insert): Check correct number of lookup_elts. diff --git a/libdwfl/core-file.c b/libdwfl/core-file.c index 324e9d2d..bbe0899d 100644 --- a/libdwfl/core-file.c +++ b/libdwfl/core-file.c @@ -588,7 +588,7 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf, const char *executable) INTDEF (dwfl_core_file_report) NEW_VERSION (dwfl_core_file_report, ELFUTILS_0.158) -#ifdef SHARED +#ifdef SYMBOL_VERSIONING int _compat_without_executable_dwfl_core_file_report (Dwfl *dwfl, Elf *elf); COMPAT_VERSION_NEWPROTO (dwfl_core_file_report, ELFUTILS_0.146, without_executable) diff --git a/libdwfl/dwfl_module_build_id.c b/libdwfl/dwfl_module_build_id.c index 350bbf83..c9a42ca7 100644 --- a/libdwfl/dwfl_module_build_id.c +++ b/libdwfl/dwfl_module_build_id.c @@ -101,7 +101,7 @@ dwfl_module_build_id (Dwfl_Module *mod, INTDEF (dwfl_module_build_id) NEW_VERSION (dwfl_module_build_id, ELFUTILS_0.138) -#ifdef SHARED +#ifdef SYMBOL_VERSIONING COMPAT_VERSION (dwfl_module_build_id, ELFUTILS_0.130, vaddr_at_end) int diff --git a/libdwfl/dwfl_report_elf.c b/libdwfl/dwfl_report_elf.c index 3a4ae2ef..624284cf 100644 --- a/libdwfl/dwfl_report_elf.c +++ b/libdwfl/dwfl_report_elf.c @@ -321,7 +321,7 @@ dwfl_report_elf (Dwfl *dwfl, const char *name, const char *file_name, int fd, INTDEF (dwfl_report_elf) NEW_VERSION (dwfl_report_elf, ELFUTILS_0.156) -#ifdef SHARED +#ifdef SYMBOL_VERSIONING Dwfl_Module * _compat_without_add_p_vaddr_dwfl_report_elf (Dwfl *dwfl, const char *name, const char *file_name, int fd, |
