diff options
author | Fangrui Song <maskray@google.com> | 2019-08-13 09:43:40 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-08-13 09:43:40 +0000 |
commit | dc06b0bc9ad055d06535462d91bfc2a744b2f589 (patch) | |
tree | 99116492cf3fb8f57273a070b0429f94b33b8450 /lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp | |
parent | 5390d25f2b5cd6a9b234e30269661d7019a9850e (diff) | |
download | bcm5719-llvm-dc06b0bc9ad055d06535462d91bfc2a744b2f589.tar.gz bcm5719-llvm-dc06b0bc9ad055d06535462d91bfc2a744b2f589.zip |
[ELF] Don't special case symbolic relocations with 0 addend to ifunc in writable locations
Currently the following 3 relocation types do not trigger the creation
of a canonical PLT (which changes STT_GNU_IFUNC to STT_FUNC and
redirects all references):
1) GOT-generating (`needsGot`)
2) PLT-generating (`needsPlt`)
3) R_ABS with 0 addend in a writable location. This is used for
for ifunc function pointers in writable sections such as .data and .toc.
This patch deletes case 3) to simplify the R_*_IRELATIVE generating
logic added in D57371. Other advantages:
* It is guaranteed no more than 1 R_*_IRELATIVE is created for an ifunc.
* PPC64: no need to special case ifunc in toc-indirect to toc-relative relaxation. See D65755
The deleted elf::addIRelativeRelocs demonstrates that one-pass scan
through relocations makes several optimizations difficult. This is
something we can think about in the future.
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D65995
llvm-svn: 368661
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp')
0 files changed, 0 insertions, 0 deletions