summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2021-11-12 09:47:31 -0800
committerFangrui Song <i@maskray.me>2021-11-12 09:47:31 -0800
commita05384dc8930cbe967def7c5c4113740838e8fd0 (patch)
tree201bd1da6fa1132a21289cceeb76fe28d528b065 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
parent4fb62e138398263dbefaa499c712929562bdf3bd (diff)
[ELF] Make --no-relax disable R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX GOT optimization
This brings back the original version of D81359. I have found several use cases now. * Unlike GNU ld, LLD's relocation processing is one pass. If we decide to optimize(relax) R_X86_64_{,REX_}GOTPCRELX, we will suppress GOT generation and cannot undo the decision later. Optimizing R_X86_64_REX_GOTPCRELX can usually make it easy to hit `relocation R_X86_64_REX_GOTPCRELX out of range` because the distance to GOT is usually shorter. Without --no-relax, the user has to recompile with `-Wa,-mrelax-relocations=no`. * The option would help during my investigationg of the root cause of https://git.kernel.org/linus/09e43968db40c33a73e9ddbfd937f46d5c334924 * There is need for relaxation for AArch64 & RISC-V. Implementing this for x86-64 improves consistency with little target-specific cost (two-line X86_64.cpp change). Reviewed By: alexander-shaposhnikov Differential Revision: https://reviews.llvm.org/D113615
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions