[PATCH] D66925: [PPC32] Emit R_PPC_GOT_TPREL16 instead R_PPC_GOT_TPREL16_LO

Jinsong Ji via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 29 11:33:03 PDT 2019


jsji added a subscriber: Ha.
jsji added a comment.

The change looks fine to me, as LLVM currently doesn't generate relocation pairs.

However, I think in theory linker should support `R_PPC_TPREL16_LO` even with PPC32.

As they are well defined according to the PPC 32 Linux ABI here:
https://www.polyomino.org.uk/publications/2011/Power-Arch-32-bit-ABI-supp-1.0-Linux.pdf

Table 4-36. TLS Relocation Table

R_PPC_TPREL16 69 half16* tprel
R_PPC_TPREL16_LO 70 half16 #lo(tprel)
R_PPC_TPREL16_HI 71 half16 #hi <https://reviews.llvm.org/tag/calculatorph/>(tprel)
R_PPC_TPREL16_HA 72 half16 #ha(tprel)

And compiler may generate @ha/@l pair according to Table 4-19. Local Exec Initial Relocations (Sequence 2)


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66925/new/

https://reviews.llvm.org/D66925





More information about the llvm-commits mailing list