diff options
author | Dave Watson <davejwatson@fb.com> | 2019-01-09 09:26:37 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-09 09:26:37 -0800 |
commit | f90c6f08aa8337307cb5a933dd30edca570c5533 (patch) | |
tree | 36ea26b3b88f476d9799f1deed1cee14c6082fa5 | |
parent | 070ae59f851d96cb31d3d7f538e3db7e74de7346 (diff) | |
download | libunwind-f90c6f08aa8337307cb5a933dd30edca570c5533.tar.gz |
dwarf: clang doesn't respect the static alias (#102)
Clang doesn't respect the static alias, resulting in global instead
of local symbols, and name collisions. Work around for clang by always
going through the PLT (at a small perf hit)
-rw-r--r-- | src/dwarf/Gfind_proc_info-lsb.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dwarf/Gfind_proc_info-lsb.c b/src/dwarf/Gfind_proc_info-lsb.c index a186f870..275419d9 100644 --- a/src/dwarf/Gfind_proc_info-lsb.c +++ b/src/dwarf/Gfind_proc_info-lsb.c @@ -46,12 +46,17 @@ struct table_entry #include "os-linux.h" #endif +#ifndef __clang__ static ALIAS(dwarf_search_unwind_table) int dwarf_search_unwind_table_int (unw_addr_space_t as, unw_word_t ip, unw_dyn_info_t *di, unw_proc_info_t *pi, int need_unwind_info, void *arg); +#else +#define dwarf_search_unwind_table_int dwarf_search_unwind_table +#endif + static int linear_search (unw_addr_space_t as, unw_word_t ip, unw_word_t eh_frame_start, unw_word_t eh_frame_end, |