summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorPeter Smith <peter.smith@linaro.org>2016-12-08 12:58:55 +0000
committerPeter Smith <peter.smith@linaro.org>2016-12-08 12:58:55 +0000
commitbaffdb8bc28e870de0810c4517a1ade1f4cc6390 (patch)
tree85cd00afaa29f47da6182c05dc9039a9e3281389 /clang/lib
parent0f77869d5838d260239709b1d6726f6eb5952325 (diff)
downloadbcm5719-llvm-baffdb8bc28e870de0810c4517a1ade1f4cc6390.tar.gz
bcm5719-llvm-baffdb8bc28e870de0810c4517a1ade1f4cc6390.zip
[ELF] ifunc implementation using synthetic sections
This change introduces new synthetic sections IpltSection, IgotPltSection that represent the ifunc entries that would previously have been put in the PltSection and the GotPltSection. The separation makes sure that the R_*_IRELATIVE relocations are placed after the non R_*_IRELATIVE relocations, which permits ifunc resolvers to know that the .got.plt slots will be initialized prior to the resolver being called. A secondary benefit is that for ARM we can move the IgotPltSection and its dynamic relocations to the .got and .rel.dyn as the ARM glibc expects all the R_*_IRELATIVE relocations to be in the .rel.dyn Differential revision: https://reviews.llvm.org/D27406 llvm-svn: 289045
Diffstat (limited to 'clang/lib')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud