[PATCH] D27406: [LLD][ELF] Ifunc implementation using synthetic sections
Peter Smith via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 7 08:05:02 PST 2016
peter.smith updated this revision to Diff 80597.
peter.smith added a comment.
I've updated the implementation with suggested changes. I've added some tests for AArch64, ARM and x86_64 to cover the ordering of the IRELATIVE relocations, and a check for IRELATIVE to non-preemptible symbols in a shared library.
The x86_32 problem is simple to fix as it needs to do the same thing as ARM and write the getVA() of the ifunc resolver instead of getPltVA(). This can come in a separate patch.
https://reviews.llvm.org/D27406
Files:
ELF/Relocations.cpp
ELF/Symbols.cpp
ELF/Symbols.h
ELF/SyntheticSections.cpp
ELF/SyntheticSections.h
ELF/Writer.cpp
test/ELF/Inputs/arm-shared.s
test/ELF/Inputs/shared2-x86-64.s
test/ELF/aarch64-gnu-ifunc-plt.s
test/ELF/aarch64-gnu-ifunc.s
test/ELF/arm-gnu-ifunc-plt.s
test/ELF/arm-gnu-ifunc.s
test/ELF/gnu-ifunc-i386.s
test/ELF/gnu-ifunc-plt.s
test/ELF/gnu-ifunc-shared.s
test/ELF/gnu-ifunc.s
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27406.80597.patch
Type: text/x-patch
Size: 41949 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161207/8d5980b9/attachment.bin>
More information about the llvm-commits
mailing list