[PATCH] D26029: [LLD][ARM] ARM IRELATIVE relocations are in rel.dyn

Peter Smith via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 31 11:14:32 PDT 2016


peter.smith added a comment.

On reflection I think that it could be possible to clean this up if the rel.dyn and rel.plt OutputSections are rewritten in terms of InputSections. The linker in Relocation.cpp would create the R_<TARGET>_IRELATIVE relocations in an InputSection called .rel.iplt or .rela.iplt. On targets such as AArch64 and X86 rela.iplt would be allocated to the .rela.plt OutputSection, on ARM and PPC (if the PPC lld Target supported it) would go into the .rel.dyn OutputSection.

The PLT and GOT + Relocs as InputSection may be some way off, is there any chance of tidying the code up enough or does it need to wait for the InputSection work to complete? The static glibc uses IFunc for memcpy which is used during initialisation so it will block all static linking on ARM.

      


https://reviews.llvm.org/D26029





More information about the llvm-commits mailing list