aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2019-02-13 21:49:55 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2019-02-13 21:49:55 +0000
commit8331f61a51a7a0a1efbf5ed398e181593023d151 (patch)
tree009e2ef3bab288e03bf760ff9ad158fc7695aee4 /llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
parent776179088159837057d19404b99dc8107e31f76b (diff)
downloadllvm-8331f61a51a7a0a1efbf5ed398e181593023d151.zip
llvm-8331f61a51a7a0a1efbf5ed398e181593023d151.tar.gz
llvm-8331f61a51a7a0a1efbf5ed398e181593023d151.tar.bz2
ELF: Allow GOT relocs pointing to non-preemptable ifunc to resolve to an IRELATIVE where possible.
Non-GOT non-PLT relocations to non-preemptible ifuncs result in the creation of a canonical PLT, which now takes the identity of the IFUNC in the symbol table. This (a) ensures address consistency inside and outside the module, and (b) fixes a bug where some of these relocations end up pointing to the resolver. Fixes (at least) PR40474 and PR40501. Differential Revision: https://reviews.llvm.org/D57371 llvm-svn: 353981
Diffstat (limited to 'llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp')
0 files changed, 0 insertions, 0 deletions