summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2019-11-08 11:03:34 -0800
committerPeter Collingbourne <peter@pcc.me.uk>2019-11-12 10:52:59 -0800
commit1549b4699a84838c3969590dc4f757b72f39f40d (patch)
tree4adaa1fa3fc6a6fbede49f969480e3db38f8cb0e /lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py
parentceb72d07b004af9c428c4a3c73a98ea97d49a713 (diff)
downloadbcm5719-llvm-1549b4699a84838c3969590dc4f757b72f39f40d.tar.gz
bcm5719-llvm-1549b4699a84838c3969590dc4f757b72f39f40d.zip
ARM: Don't emit R_ARM_NONE relocations to compact unwinding decoders in .ARM.exidx on Android.
These relocations are specified by the ARM EHABI (section 6.3). As I understand it, their purpose is to accommodate unwinder implementations that wish to reduce code size by placing the implementations of the compact unwinding decoders in a separate translation unit, and using extern weak symbols to refer to them from the main unwinder implementation, so that they are only linked when something in the binary needs them in order to unwind. However, neither of the unwinders used on Android (libgcc, LLVM libunwind) use this technique, and in fact emitting these relocations ends up being counterproductive to code size because they cause a copy of the unwinder to be statically linked into most binaries, regardless of whether it is actually needed. Furthermore, these relocations create circular dependencies (between libc and the unwinder) in cases where the unwinder is dynamically linked and libc contains compact unwind info. Therefore, deviate from the EHABI here and stop emitting these relocations on Android. Differential Revision: https://reviews.llvm.org/D70027
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud