* ppc.h: Add TLS relocs. Format.
authorAlan Modra <amodra@gmail.com>
Tue, 4 Feb 2003 14:48:36 +0000 (14:48 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 4 Feb 2003 14:48:36 +0000 (14:48 +0000)
* ppc64.h: Likewise.

include/elf/ChangeLog
include/elf/ppc.h
include/elf/ppc64.h

index 7b6f177e2dbbce6a449648cab79f1edc04c86565..88e8c96e566e6b01042d640f913a4f0837febbcb 100644 (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.
index 92348606e0eecac6d75764e4c204edac8fb13009..21c67437953ba604d9965461126a756223f0bcd7 100644 (file)
@@ -32,71 +32,101 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* Relocations.  */
 START_RELOC_NUMBERS (elf_ppc_reloc_type)
-  RELOC_NUMBER (R_PPC_NONE, 0)
-  RELOC_NUMBER (R_PPC_ADDR32, 1)
-  RELOC_NUMBER (R_PPC_ADDR24, 2)
-  RELOC_NUMBER (R_PPC_ADDR16, 3)
-  RELOC_NUMBER (R_PPC_ADDR16_LO, 4)
-  RELOC_NUMBER (R_PPC_ADDR16_HI, 5)
-  RELOC_NUMBER (R_PPC_ADDR16_HA, 6)
-  RELOC_NUMBER (R_PPC_ADDR14, 7)
-  RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN, 8)
-  RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN, 9)
-  RELOC_NUMBER (R_PPC_REL24, 10)
-  RELOC_NUMBER (R_PPC_REL14, 11)
-  RELOC_NUMBER (R_PPC_REL14_BRTAKEN, 12)
-  RELOC_NUMBER (R_PPC_REL14_BRNTAKEN, 13)
-  RELOC_NUMBER (R_PPC_GOT16, 14)
-  RELOC_NUMBER (R_PPC_GOT16_LO, 15)
-  RELOC_NUMBER (R_PPC_GOT16_HI, 16)
-  RELOC_NUMBER (R_PPC_GOT16_HA, 17)
-  RELOC_NUMBER (R_PPC_PLTREL24, 18)
-  RELOC_NUMBER (R_PPC_COPY, 19)
-  RELOC_NUMBER (R_PPC_GLOB_DAT, 20)
-  RELOC_NUMBER (R_PPC_JMP_SLOT, 21)
-  RELOC_NUMBER (R_PPC_RELATIVE, 22)
-  RELOC_NUMBER (R_PPC_LOCAL24PC, 23)
-  RELOC_NUMBER (R_PPC_UADDR32, 24)
-  RELOC_NUMBER (R_PPC_UADDR16, 25)
-  RELOC_NUMBER (R_PPC_REL32, 26)
-  RELOC_NUMBER (R_PPC_PLT32, 27)
-  RELOC_NUMBER (R_PPC_PLTREL32, 28)
-  RELOC_NUMBER (R_PPC_PLT16_LO, 29)
-  RELOC_NUMBER (R_PPC_PLT16_HI, 30)
-  RELOC_NUMBER (R_PPC_PLT16_HA, 31)
-  RELOC_NUMBER (R_PPC_SDAREL16, 32)
-  RELOC_NUMBER (R_PPC_SECTOFF, 33)
-  RELOC_NUMBER (R_PPC_SECTOFF_LO, 34)
-  RELOC_NUMBER (R_PPC_SECTOFF_HI, 35)
-  RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
-  RELOC_NUMBER (R_PPC_ADDR30, 37)
+  RELOC_NUMBER (R_PPC_NONE,              0)
+  RELOC_NUMBER (R_PPC_ADDR32,            1)
+  RELOC_NUMBER (R_PPC_ADDR24,            2)
+  RELOC_NUMBER (R_PPC_ADDR16,            3)
+  RELOC_NUMBER (R_PPC_ADDR16_LO,         4)
+  RELOC_NUMBER (R_PPC_ADDR16_HI,         5)
+  RELOC_NUMBER (R_PPC_ADDR16_HA,         6)
+  RELOC_NUMBER (R_PPC_ADDR14,            7)
+  RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN,    8)
+  RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN,   9)
+  RELOC_NUMBER (R_PPC_REL24,            10)
+  RELOC_NUMBER (R_PPC_REL14,            11)
+  RELOC_NUMBER (R_PPC_REL14_BRTAKEN,    12)
+  RELOC_NUMBER (R_PPC_REL14_BRNTAKEN,   13)
+  RELOC_NUMBER (R_PPC_GOT16,            14)
+  RELOC_NUMBER (R_PPC_GOT16_LO,                 15)
+  RELOC_NUMBER (R_PPC_GOT16_HI,                 16)
+  RELOC_NUMBER (R_PPC_GOT16_HA,                 17)
+  RELOC_NUMBER (R_PPC_PLTREL24,                 18)
+  RELOC_NUMBER (R_PPC_COPY,             19)
+  RELOC_NUMBER (R_PPC_GLOB_DAT,                 20)
+  RELOC_NUMBER (R_PPC_JMP_SLOT,                 21)
+  RELOC_NUMBER (R_PPC_RELATIVE,                 22)
+  RELOC_NUMBER (R_PPC_LOCAL24PC,        23)
+  RELOC_NUMBER (R_PPC_UADDR32,          24)
+  RELOC_NUMBER (R_PPC_UADDR16,          25)
+  RELOC_NUMBER (R_PPC_REL32,            26)
+  RELOC_NUMBER (R_PPC_PLT32,            27)
+  RELOC_NUMBER (R_PPC_PLTREL32,                 28)
+  RELOC_NUMBER (R_PPC_PLT16_LO,                 29)
+  RELOC_NUMBER (R_PPC_PLT16_HI,                 30)
+  RELOC_NUMBER (R_PPC_PLT16_HA,                 31)
+  RELOC_NUMBER (R_PPC_SDAREL16,                 32)
+  RELOC_NUMBER (R_PPC_SECTOFF,          33)
+  RELOC_NUMBER (R_PPC_SECTOFF_LO,       34)
+  RELOC_NUMBER (R_PPC_SECTOFF_HI,       35)
+  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)
-  RELOC_NUMBER (R_PPC_EMB_NADDR16, 102)
-  RELOC_NUMBER (R_PPC_EMB_NADDR16_LO, 103)
-  RELOC_NUMBER (R_PPC_EMB_NADDR16_HI, 104)
-  RELOC_NUMBER (R_PPC_EMB_NADDR16_HA, 105)
-  RELOC_NUMBER (R_PPC_EMB_SDAI16, 106)
-  RELOC_NUMBER (R_PPC_EMB_SDA2I16, 107)
-  RELOC_NUMBER (R_PPC_EMB_SDA2REL, 108)
-  RELOC_NUMBER (R_PPC_EMB_SDA21, 109)
-  RELOC_NUMBER (R_PPC_EMB_MRKREF, 110)
-  RELOC_NUMBER (R_PPC_EMB_RELSEC16, 111)
-  RELOC_NUMBER (R_PPC_EMB_RELST_LO, 112)
-  RELOC_NUMBER (R_PPC_EMB_RELST_HI, 113)
-  RELOC_NUMBER (R_PPC_EMB_RELST_HA, 114)
-  RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115)
-  RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
+  RELOC_NUMBER (R_PPC_EMB_NADDR32,     101)
+  RELOC_NUMBER (R_PPC_EMB_NADDR16,     102)
+  RELOC_NUMBER (R_PPC_EMB_NADDR16_LO,  103)
+  RELOC_NUMBER (R_PPC_EMB_NADDR16_HI,  104)
+  RELOC_NUMBER (R_PPC_EMB_NADDR16_HA,  105)
+  RELOC_NUMBER (R_PPC_EMB_SDAI16,      106)
+  RELOC_NUMBER (R_PPC_EMB_SDA2I16,     107)
+  RELOC_NUMBER (R_PPC_EMB_SDA2REL,     108)
+  RELOC_NUMBER (R_PPC_EMB_SDA21,       109)
+  RELOC_NUMBER (R_PPC_EMB_MRKREF,      110)
+  RELOC_NUMBER (R_PPC_EMB_RELSEC16,    111)
+  RELOC_NUMBER (R_PPC_EMB_RELST_LO,    112)
+  RELOC_NUMBER (R_PPC_EMB_RELST_HI,    113)
+  RELOC_NUMBER (R_PPC_EMB_RELST_HA,    114)
+  RELOC_NUMBER (R_PPC_EMB_BIT_FLD,     115)
+  RELOC_NUMBER (R_PPC_EMB_RELSDA,      116)
 
   /* These are GNU extensions to enable C++ vtable garbage collection.  */
-  RELOC_NUMBER (R_PPC_GNU_VTINHERIT, 253)
-  RELOC_NUMBER (R_PPC_GNU_VTENTRY, 254)
+  RELOC_NUMBER (R_PPC_GNU_VTINHERIT,   253)
+  RELOC_NUMBER (R_PPC_GNU_VTENTRY,     254)
 
 /* This is a phony reloc to handle any old fashioned TOC16 references
    that may still be in object files.  */
-  RELOC_NUMBER (R_PPC_TOC16, 255)
+  RELOC_NUMBER (R_PPC_TOC16,           255)
 
 END_RELOC_NUMBERS (R_PPC_max)
 
index 1cbb639dce1d52b6dc288e834c9172558bad77a9..8b8018717143e6e9b60a29902603b5c7c3912df7 100644 (file)
@@ -24,83 +24,128 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* Relocations.  */
 START_RELOC_NUMBERS (elf_ppc64_reloc_type)
-  RELOC_NUMBER (R_PPC64_NONE,            0)
-  RELOC_NUMBER (R_PPC64_ADDR32,                  1)
-  RELOC_NUMBER (R_PPC64_ADDR24,                  2)
-  RELOC_NUMBER (R_PPC64_ADDR16,                  3)
-  RELOC_NUMBER (R_PPC64_ADDR16_LO,       4)
-  RELOC_NUMBER (R_PPC64_ADDR16_HI,       5)
-  RELOC_NUMBER (R_PPC64_ADDR16_HA,       6)
-  RELOC_NUMBER (R_PPC64_ADDR14,                  7)
-  RELOC_NUMBER (R_PPC64_ADDR14_BRTAKEN,          8)
-  RELOC_NUMBER (R_PPC64_ADDR14_BRNTAKEN,  9)
-  RELOC_NUMBER (R_PPC64_REL24,          10)
-  RELOC_NUMBER (R_PPC64_REL14,          11)
-  RELOC_NUMBER (R_PPC64_REL14_BRTAKEN,  12)
-  RELOC_NUMBER (R_PPC64_REL14_BRNTAKEN,         13)
-  RELOC_NUMBER (R_PPC64_GOT16,          14)
-  RELOC_NUMBER (R_PPC64_GOT16_LO,       15)
-  RELOC_NUMBER (R_PPC64_GOT16_HI,       16)
-  RELOC_NUMBER (R_PPC64_GOT16_HA,       17)
+  RELOC_NUMBER (R_PPC64_NONE,               0)
+  RELOC_NUMBER (R_PPC64_ADDR32,                     1)
+  RELOC_NUMBER (R_PPC64_ADDR24,                     2)
+  RELOC_NUMBER (R_PPC64_ADDR16,                     3)
+  RELOC_NUMBER (R_PPC64_ADDR16_LO,          4)
+  RELOC_NUMBER (R_PPC64_ADDR16_HI,          5)
+  RELOC_NUMBER (R_PPC64_ADDR16_HA,          6)
+  RELOC_NUMBER (R_PPC64_ADDR14,                     7)
+  RELOC_NUMBER (R_PPC64_ADDR14_BRTAKEN,             8)
+  RELOC_NUMBER (R_PPC64_ADDR14_BRNTAKEN,     9)
+  RELOC_NUMBER (R_PPC64_REL24,             10)
+  RELOC_NUMBER (R_PPC64_REL14,             11)
+  RELOC_NUMBER (R_PPC64_REL14_BRTAKEN,     12)
+  RELOC_NUMBER (R_PPC64_REL14_BRNTAKEN,            13)
+  RELOC_NUMBER (R_PPC64_GOT16,             14)
+  RELOC_NUMBER (R_PPC64_GOT16_LO,          15)
+  RELOC_NUMBER (R_PPC64_GOT16_HI,          16)
+  RELOC_NUMBER (R_PPC64_GOT16_HA,          17)
   /* 18 unused.  32-bit reloc is R_PPC_PLTREL24.  */
-  RELOC_NUMBER (R_PPC64_COPY,           19)
-  RELOC_NUMBER (R_PPC64_GLOB_DAT,       20)
-  RELOC_NUMBER (R_PPC64_JMP_SLOT,       21)
-  RELOC_NUMBER (R_PPC64_RELATIVE,       22)
+  RELOC_NUMBER (R_PPC64_COPY,              19)
+  RELOC_NUMBER (R_PPC64_GLOB_DAT,          20)
+  RELOC_NUMBER (R_PPC64_JMP_SLOT,          21)
+  RELOC_NUMBER (R_PPC64_RELATIVE,          22)
   /* 23 unused.  32-bit reloc is R_PPC_LOCAL24PC.  */
-  RELOC_NUMBER (R_PPC64_UADDR32,        24)
-  RELOC_NUMBER (R_PPC64_UADDR16,        25)
-  RELOC_NUMBER (R_PPC64_REL32,          26)
-  RELOC_NUMBER (R_PPC64_PLT32,          27)
-  RELOC_NUMBER (R_PPC64_PLTREL32,       28)
-  RELOC_NUMBER (R_PPC64_PLT16_LO,       29)
-  RELOC_NUMBER (R_PPC64_PLT16_HI,       30)
-  RELOC_NUMBER (R_PPC64_PLT16_HA,       31)
+  RELOC_NUMBER (R_PPC64_UADDR32,           24)
+  RELOC_NUMBER (R_PPC64_UADDR16,           25)
+  RELOC_NUMBER (R_PPC64_REL32,             26)
+  RELOC_NUMBER (R_PPC64_PLT32,             27)
+  RELOC_NUMBER (R_PPC64_PLTREL32,          28)
+  RELOC_NUMBER (R_PPC64_PLT16_LO,          29)
+  RELOC_NUMBER (R_PPC64_PLT16_HI,          30)
+  RELOC_NUMBER (R_PPC64_PLT16_HA,          31)
   /* 32 unused.  32-bit reloc is R_PPC_SDAREL16.  */
-  RELOC_NUMBER (R_PPC64_SECTOFF,        33)
-  RELOC_NUMBER (R_PPC64_SECTOFF_LO,     34)
-  RELOC_NUMBER (R_PPC64_SECTOFF_HI,     35)
-  RELOC_NUMBER (R_PPC64_SECTOFF_HA,     36)
-  RELOC_NUMBER (R_PPC64_REL30,          37)
-  RELOC_NUMBER (R_PPC64_ADDR64,                 38)
-  RELOC_NUMBER (R_PPC64_ADDR16_HIGHER,  39)
-  RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA,         40)
-  RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST,         41)
-  RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA, 42)
-  RELOC_NUMBER (R_PPC64_UADDR64,        43)
-  RELOC_NUMBER (R_PPC64_REL64,          44)
-  RELOC_NUMBER (R_PPC64_PLT64,          45)
-  RELOC_NUMBER (R_PPC64_PLTREL64,       46)
-  RELOC_NUMBER (R_PPC64_TOC16,          47)
-  RELOC_NUMBER (R_PPC64_TOC16_LO,       48)
-  RELOC_NUMBER (R_PPC64_TOC16_HI,       49)
-  RELOC_NUMBER (R_PPC64_TOC16_HA,       50)
-  RELOC_NUMBER (R_PPC64_TOC,            51)
-  RELOC_NUMBER (R_PPC64_PLTGOT16,       52)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_LO,    53)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_HI,    54)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_HA,    55)
+  RELOC_NUMBER (R_PPC64_SECTOFF,           33)
+  RELOC_NUMBER (R_PPC64_SECTOFF_LO,        34)
+  RELOC_NUMBER (R_PPC64_SECTOFF_HI,        35)
+  RELOC_NUMBER (R_PPC64_SECTOFF_HA,        36)
+  RELOC_NUMBER (R_PPC64_REL30,             37)
+  RELOC_NUMBER (R_PPC64_ADDR64,                    38)
+  RELOC_NUMBER (R_PPC64_ADDR16_HIGHER,     39)
+  RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA,            40)
+  RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST,            41)
+  RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA,    42)
+  RELOC_NUMBER (R_PPC64_UADDR64,           43)
+  RELOC_NUMBER (R_PPC64_REL64,             44)
+  RELOC_NUMBER (R_PPC64_PLT64,             45)
+  RELOC_NUMBER (R_PPC64_PLTREL64,          46)
+  RELOC_NUMBER (R_PPC64_TOC16,             47)
+  RELOC_NUMBER (R_PPC64_TOC16_LO,          48)
+  RELOC_NUMBER (R_PPC64_TOC16_HI,          49)
+  RELOC_NUMBER (R_PPC64_TOC16_HA,          50)
+  RELOC_NUMBER (R_PPC64_TOC,               51)
+  RELOC_NUMBER (R_PPC64_PLTGOT16,          52)
+  RELOC_NUMBER (R_PPC64_PLTGOT16_LO,       53)
+  RELOC_NUMBER (R_PPC64_PLTGOT16_HI,       54)
+  RELOC_NUMBER (R_PPC64_PLTGOT16_HA,       55)
 
-/* The following relocs were added in the 64-bit PowerPC ELF ABI
-   revision 1.2. */
-  RELOC_NUMBER (R_PPC64_ADDR16_DS,      56)
-  RELOC_NUMBER (R_PPC64_ADDR16_LO_DS,   57)
-  RELOC_NUMBER (R_PPC64_GOT16_DS,       58)
-  RELOC_NUMBER (R_PPC64_GOT16_LO_DS,    59)
-  RELOC_NUMBER (R_PPC64_PLT16_LO_DS,    60)
-  RELOC_NUMBER (R_PPC64_SECTOFF_DS,     61)
-  RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS,  62)
-  RELOC_NUMBER (R_PPC64_TOC16_DS,       63)
-  RELOC_NUMBER (R_PPC64_TOC16_LO_DS,    64)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_DS,    65)
-  RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS,         66)
+  /* The following relocs were added in the 64-bit PowerPC ELF ABI
+     revision 1.2. */
+  RELOC_NUMBER (R_PPC64_ADDR16_DS,         56)
+  RELOC_NUMBER (R_PPC64_ADDR16_LO_DS,      57)
+  RELOC_NUMBER (R_PPC64_GOT16_DS,          58)
+  RELOC_NUMBER (R_PPC64_GOT16_LO_DS,       59)
+  RELOC_NUMBER (R_PPC64_PLT16_LO_DS,       60)
+  RELOC_NUMBER (R_PPC64_SECTOFF_DS,        61)
+  RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS,     62)
+  RELOC_NUMBER (R_PPC64_TOC16_DS,          63)
+  RELOC_NUMBER (R_PPC64_TOC16_LO_DS,       64)
+  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)
+  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