commit | 824aaa36e08b25a648562dc8ba0b2797d85a5153 | [log] [tgz] |
---|---|---|
author | Dan Albert <[email protected]> | Wed Nov 01 21:26:06 2017 +0000 |
committer | Dan Albert <[email protected]> | Thu Apr 26 15:51:57 2018 -0700 |
tree | 9dc6918d3d5d50b5c29539e6275d0823eba94ebe | |
parent | d37f5a6ecfeafaf21aeea4ce65031d2224ccfc94 [diff] |
[libunwind] Don't use dl_iterate_phdr if __ANDROID_API__ < 21 Summary: On ARM, dl_iterate_phdr is only implemented in the Android NDK version 21 or later: https://android.googlesource.com/platform/prebuilts/ndk/+/dev/platform/sysroot/usr/include/link.h#55 Reviewers: thakis, danalbert Reviewed By: danalbert Subscribers: dtzWill, aemerson, srhines, kristof.beyls Differential Revision: https://reviews.llvm.org/D39468 Change-Id: I770aad7d7d58f6787f9ecd38b83e0ffe44792392 git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@317125 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/src/AddressSpace.hpp b/src/AddressSpace.hpp index f0091fc..acf0a44 100644 --- a/src/AddressSpace.hpp +++ b/src/AddressSpace.hpp
@@ -383,6 +383,14 @@ info.arm_section, info.arm_section_length); if (info.arm_section && info.arm_section_length) return true; +#elif defined(_LIBUNWIND_ARM_EHABI) && defined(__BIONIC__) && \ + (__ANDROID_API__ < 21) + int length = 0; + info.arm_section = + (uintptr_t)dl_unwind_find_exidx((_Unwind_Ptr)targetAddr, &length); + info.arm_section_length = (uintptr_t)length; + if (info.arm_section && info.arm_section_length) + return true; #elif _LIBUNWIND_SUPPORT_DWARF_UNWIND #if _LIBUNWIND_SUPPORT_DWARF_INDEX struct dl_iterate_cb_data {