[all-commits] [llvm/llvm-project] 345f59: [ELF] Rename .plt to .iplt and decrease EM_PPC{, 64...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Dec 17 00:16:28 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 345f59667d846c4b77258e72c902f4aaf8add166
      https://github.com/llvm/llvm-project/commit/345f59667d846c4b77258e72c902f4aaf8add166
  Author: Fangrui Song <maskray at google.com>
  Date:   2019-12-17 (Tue, 17 Dec 2019)

  Changed paths:
    M lld/ELF/SyntheticSections.cpp
    M lld/test/ELF/aarch64-gnu-ifunc-nonpreemptable.s
    M lld/test/ELF/aarch64-gnu-ifunc-plt.s
    M lld/test/ELF/aarch64-gnu-ifunc.s
    M lld/test/ELF/aarch64-gnu-ifunc2.s
    M lld/test/ELF/aarch64-ifunc-bti.s
    M lld/test/ELF/arm-gnu-ifunc.s
    M lld/test/ELF/gnu-ifunc-canon.s
    M lld/test/ELF/gnu-ifunc-i386.s
    M lld/test/ELF/gnu-ifunc-plt-i386.s
    M lld/test/ELF/gnu-ifunc-plt.s
    M lld/test/ELF/gnu-ifunc-shared.s
    M lld/test/ELF/gnu-ifunc.s
    M lld/test/ELF/linkerscript/orphan-report.s
    M lld/test/ELF/ppc32-call-stub-pic.s
    M lld/test/ELF/ppc32-gnu-ifunc-nonpreemptable.s
    M lld/test/ELF/ppc32-gnu-ifunc.s
    M lld/test/ELF/ppc32-tls-gd.s
    M lld/test/ELF/ppc32-tls-ld.s
    M lld/test/ELF/ppc64-dtprel.s
    M lld/test/ELF/ppc64-toc-relax-ifunc.s

  Log Message:
  -----------
  [ELF] Rename .plt to .iplt and decrease EM_PPC{,64} alignment of .glink to 4

GNU ld creates the synthetic section .iplt, and has a built-in linker
script that assigns .iplt to the output section .plt . There is no
output section named .iplt .

Making .iplt an output section actually has a benefit that makes the
tricky toolchain feature stand out. Symbolizers don't have to deal with
mixed PLT entries (e.g. llvm-objdump -d incorrectly annotates such jump
targets).

On EM_PPC{,64}, .glink contains a PLT resolver and a series of jump
instructions. The 4-byte entry size makes it unnecessary to have an
alignment of 16.

Mark ppc32-gnu-ifunc.s and ppc32-gnu-ifunc-nonpreemptable.s as `XFAIL: *`.
They test IPLT on EM_PPC, which never works.

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D71520




More information about the All-commits mailing list