summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/breakpoint
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-11-23 00:57:54 -0800
committerFangrui Song <maskray@google.com>2019-12-02 10:07:24 -0800
commitbf535ac4a28268e6a481acee5a794ef5deed5018 (patch)
tree19ffa622528127d9bfad0173afad0e2e08ac04b4 /lldb/packages/Python/lldbsuite/test/python_api/breakpoint
parentaf4e59949cc4cc895be76a441a2a867189ee0f55 (diff)
downloadbcm5719-llvm-bf535ac4a28268e6a481acee5a794ef5deed5018.tar.gz
bcm5719-llvm-bf535ac4a28268e6a481acee5a794ef5deed5018.zip
[ELF][AArch64] Support R_AARCH64_{CALL26,JUMP26} range extension thunks with addends
Fixes AArch64 part of PR40438 The current range extension thunk framework does not handle a relocation relative to a STT_SECTION symbol with a non-zero addend, which may be used by jumps/calls to local functions on some RELA targets (AArch64, powerpc ELFv1, powerpc64 ELFv2, etc). See PR40438 and the following code for examples: // clang -target $target a.cc // .text.cold may be placed in a separate output section. // The distance between bar in .text.cold and foo in .text may be larger than 128MiB. static void foo() {} __attribute__((section(".text.cold"))) static int bar() { foo(); return 0; } __attribute__((used)) static int dummy = bar(); This patch makes such thunks with addends work for AArch64. The target independent part can be reused by PPC in the future. On REL targets (ARM, MIPS), jumps/calls are not represented as STT_SECTION + non-zero addend (see MCELFObjectTargetWriter::needsRelocateWithSymbol), so they don't need this feature, but we need to make sure this patch does not affect them. Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D70637
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/breakpoint')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud