[all-commits] [llvm/llvm-project] 891a86: [ELF] Add IpltSection

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


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

  Changed paths:
    M lld/ELF/Arch/AArch64.cpp
    M lld/ELF/Arch/ARM.cpp
    M lld/ELF/Arch/PPC.cpp
    M lld/ELF/Arch/PPC64.cpp
    M lld/ELF/Arch/RISCV.cpp
    M lld/ELF/Arch/X86.cpp
    M lld/ELF/Arch/X86_64.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Symbols.cpp
    M lld/ELF/SyntheticSections.cpp
    M lld/ELF/SyntheticSections.h
    M lld/ELF/Target.h
    M lld/ELF/Writer.cpp
    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

  Log Message:
  -----------
  [ELF] Add IpltSection

PltSection is used by both PLT and IPLT. The PLT section may have a
header while the IPLT section does not. Split off IpltSection from
PltSection to be clearer.

Unlike other targets, PPC64 cannot use the same code sequence for PLT
and IPLT. This helps make a future PPC64 patch (D71509) more isolated.

On EM_386 and EM_X86_64, when PLT is empty while IPLT is not, currently
we are inconsistent whether the PLT header is conceptually attached to
in.plt or in.iplt .  Consistently attach the header to in.plt can make
the -z retpolineplt logic simpler. It also makes `jmp` point to an
aesthetically better place for non-retpolineplt cases.

Reviewed By: grimar, ruiu

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




More information about the All-commits mailing list