* ppc.h: Add TLS relocs. Format.

* ppc64.h: Likewise.
This commit is contained in:
Alan Modra 2003-02-04 14:48:36 +00:00
parent 335556d58b
commit e0c94f4793
3 changed files with 205 additions and 125 deletions

View File

@ -1,3 +1,8 @@
2003-02-05 Alan Modra <amodra@bigpond.net.au>
* ppc.h: Add TLS relocs. Format.
* ppc64.h: Likewise.
2003-01-27 Alexandre Oliva <aoliva@redhat.com>
* mips.h (EF_MIPS_XGOT): Define.

View File

@ -71,6 +71,36 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
RELOC_NUMBER (R_PPC_ADDR30, 37)
/* Relocs added to support TLS. */
RELOC_NUMBER (R_PPC_TLS, 67)
RELOC_NUMBER (R_PPC_DTPMOD64, 68)
RELOC_NUMBER (R_PPC_TPREL16, 69)
RELOC_NUMBER (R_PPC_TPREL16_LO, 70)
RELOC_NUMBER (R_PPC_TPREL16_HI, 71)
RELOC_NUMBER (R_PPC_TPREL16_HA, 72)
RELOC_NUMBER (R_PPC_TPREL64, 73)
RELOC_NUMBER (R_PPC_DTPREL16, 74)
RELOC_NUMBER (R_PPC_DTPREL16_LO, 75)
RELOC_NUMBER (R_PPC_DTPREL16_HI, 76)
RELOC_NUMBER (R_PPC_DTPREL16_HA, 77)
RELOC_NUMBER (R_PPC_DTPREL64, 78)
RELOC_NUMBER (R_PPC_GOT_TLSGD16, 79)
RELOC_NUMBER (R_PPC_GOT_TLSGD16_LO, 80)
RELOC_NUMBER (R_PPC_GOT_TLSGD16_HI, 81)
RELOC_NUMBER (R_PPC_GOT_TLSGD16_HA, 82)
RELOC_NUMBER (R_PPC_GOT_TLSLD16, 83)
RELOC_NUMBER (R_PPC_GOT_TLSLD16_LO, 84)
RELOC_NUMBER (R_PPC_GOT_TLSLD16_HI, 85)
RELOC_NUMBER (R_PPC_GOT_TLSLD16_HA, 86)
RELOC_NUMBER (R_PPC_GOT_TPREL16, 87)
RELOC_NUMBER (R_PPC_GOT_TPREL16_LO, 88)
RELOC_NUMBER (R_PPC_GOT_TPREL16_HI, 89)
RELOC_NUMBER (R_PPC_GOT_TPREL16_HA, 90)
RELOC_NUMBER (R_PPC_GOT_DTPREL16, 91)
RELOC_NUMBER (R_PPC_GOT_DTPREL16_LO, 92)
RELOC_NUMBER (R_PPC_GOT_DTPREL16_HI, 93)
RELOC_NUMBER (R_PPC_GOT_DTPREL16_HA, 94)
/* The remaining relocs are from the Embedded ELF ABI, and are not
in the SVR4 ELF ABI. */
RELOC_NUMBER (R_PPC_EMB_NADDR32, 101)

View File

@ -95,12 +95,57 @@ START_RELOC_NUMBERS (elf_ppc64_reloc_type)
RELOC_NUMBER (R_PPC64_PLTGOT16_DS, 65)
RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS, 66)
/* Relocs added to support TLS. PowerPC64 ELF ABI revision 1.5. */
RELOC_NUMBER (R_PPC64_TLS, 67)
RELOC_NUMBER (R_PPC64_DTPMOD64, 68)
RELOC_NUMBER (R_PPC64_TPREL16, 69)
RELOC_NUMBER (R_PPC64_TPREL16_LO, 70)
RELOC_NUMBER (R_PPC64_TPREL16_HI, 71)
RELOC_NUMBER (R_PPC64_TPREL16_HA, 72)
RELOC_NUMBER (R_PPC64_TPREL64, 73)
RELOC_NUMBER (R_PPC64_DTPREL16, 74)
RELOC_NUMBER (R_PPC64_DTPREL16_LO, 75)
RELOC_NUMBER (R_PPC64_DTPREL16_HI, 76)
RELOC_NUMBER (R_PPC64_DTPREL16_HA, 77)
RELOC_NUMBER (R_PPC64_DTPREL64, 78)
RELOC_NUMBER (R_PPC64_GOT_TLSGD16, 79)
RELOC_NUMBER (R_PPC64_GOT_TLSGD16_LO, 80)
RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HI, 81)
RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HA, 82)
RELOC_NUMBER (R_PPC64_GOT_TLSLD16, 83)
RELOC_NUMBER (R_PPC64_GOT_TLSLD16_LO, 84)
RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HI, 85)
RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HA, 86)
RELOC_NUMBER (R_PPC64_GOT_TPREL16_DS, 87)
RELOC_NUMBER (R_PPC64_GOT_TPREL16_LO_DS, 88)
RELOC_NUMBER (R_PPC64_GOT_TPREL16_HI, 89)
RELOC_NUMBER (R_PPC64_GOT_TPREL16_HA, 90)
RELOC_NUMBER (R_PPC64_GOT_DTPREL16_DS, 91)
RELOC_NUMBER (R_PPC64_GOT_DTPREL16_LO_DS, 92)
RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HI, 93)
RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HA, 94)
RELOC_NUMBER (R_PPC64_TPREL16_DS, 95)
RELOC_NUMBER (R_PPC64_TPREL16_LO_DS, 96)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHER, 97)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHERA, 98)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHEST, 99)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHESTA, 100)
RELOC_NUMBER (R_PPC64_DTPREL16_DS, 101)
RELOC_NUMBER (R_PPC64_DTPREL16_LO_DS, 102)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHER, 103)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHERA, 104)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHEST, 105)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHESTA, 106)
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253)
RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254)
END_RELOC_NUMBERS (R_PPC64_max)
#define IS_TLS_RELOC(R) \
((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA)
/* Specify the start of the .glink section. */
#define DT_PPC64_GLINK DT_LOPROC