]> Cypherpunks repositories - gostls13.git/commitdiff
debug/elf: define additional PPC64 ELFv2 relocations
authorPaul E. Murphy <murp@ibm.com>
Mon, 8 Aug 2022 20:58:04 +0000 (15:58 -0500)
committerPaul Murphy <murp@ibm.com>
Thu, 8 Sep 2022 13:31:46 +0000 (13:31 +0000)
The PPC64 ELFv2 supplement version 1.5 defines a handful of
new relocation types, similarly some were not added.

Fixes #54345

Change-Id: Id39b29d404298fca4a10ccf1e96b5964dc452c9e
Reviewed-on: https://go-review.googlesource.com/c/go/+/425555
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

api/next/54345.txt [new file with mode: 0644]
src/debug/elf/elf.go

diff --git a/api/next/54345.txt b/api/next/54345.txt
new file mode 100644 (file)
index 0000000..50cc2d1
--- /dev/null
@@ -0,0 +1,108 @@
+pkg debug/elf, const R_PPC64_ADDR16_HIGHER34 = 136 #54345
+pkg debug/elf, const R_PPC64_ADDR16_HIGHER34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_ADDR16_HIGHERA34 = 137 #54345
+pkg debug/elf, const R_PPC64_ADDR16_HIGHERA34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_ADDR16_HIGHEST34 = 138 #54345
+pkg debug/elf, const R_PPC64_ADDR16_HIGHEST34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_ADDR16_HIGHESTA34 = 139 #54345
+pkg debug/elf, const R_PPC64_ADDR16_HIGHESTA34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_COPY = 19 #54345
+pkg debug/elf, const R_PPC64_COPY R_PPC64 #54345
+pkg debug/elf, const R_PPC64_D28 = 144 #54345
+pkg debug/elf, const R_PPC64_D28 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_D34 = 128 #54345
+pkg debug/elf, const R_PPC64_D34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_D34_HA30 = 131 #54345
+pkg debug/elf, const R_PPC64_D34_HA30 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_D34_HI30 = 130 #54345
+pkg debug/elf, const R_PPC64_D34_HI30 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_D34_LO = 129 #54345
+pkg debug/elf, const R_PPC64_D34_LO R_PPC64 #54345
+pkg debug/elf, const R_PPC64_DTPREL28 = 147 #54345
+pkg debug/elf, const R_PPC64_DTPREL28 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_GLOB_DAT = 20 #54345
+pkg debug/elf, const R_PPC64_GLOB_DAT R_PPC64 #54345
+pkg debug/elf, const R_PPC64_GNU_VTENTRY = 254 #54345
+pkg debug/elf, const R_PPC64_GNU_VTENTRY R_PPC64 #54345
+pkg debug/elf, const R_PPC64_GNU_VTINHERIT = 253 #54345
+pkg debug/elf, const R_PPC64_GNU_VTINHERIT R_PPC64 #54345
+pkg debug/elf, const R_PPC64_GOT_DTPREL_PCREL34 = 151 #54345
+pkg debug/elf, const R_PPC64_GOT_DTPREL_PCREL34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_GOT_PCREL34 = 133 #54345
+pkg debug/elf, const R_PPC64_GOT_PCREL34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_GOT_TLSGD_PCREL34 = 148 #54345
+pkg debug/elf, const R_PPC64_GOT_TLSGD_PCREL34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_GOT_TLSLD_PCREL34 = 149 #54345
+pkg debug/elf, const R_PPC64_GOT_TLSLD_PCREL34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_GOT_TPREL_PCREL34 = 150 #54345
+pkg debug/elf, const R_PPC64_GOT_TPREL_PCREL34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PCREL28 = 145 #54345
+pkg debug/elf, const R_PPC64_PCREL28 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PCREL34 = 132 #54345
+pkg debug/elf, const R_PPC64_PCREL34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PCREL_OPT = 123 #54345
+pkg debug/elf, const R_PPC64_PCREL_OPT R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLT16_HA = 31 #54345
+pkg debug/elf, const R_PPC64_PLT16_HA R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLT16_HI = 30 #54345
+pkg debug/elf, const R_PPC64_PLT16_HI R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLT16_LO = 29 #54345
+pkg debug/elf, const R_PPC64_PLT16_LO R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLT32 = 27 #54345
+pkg debug/elf, const R_PPC64_PLT32 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLT64 = 45 #54345
+pkg debug/elf, const R_PPC64_PLT64 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLTCALL = 120 #54345
+pkg debug/elf, const R_PPC64_PLTCALL R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLTCALL_NOTOC = 122 #54345
+pkg debug/elf, const R_PPC64_PLTCALL_NOTOC R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLTREL32 = 28 #54345
+pkg debug/elf, const R_PPC64_PLTREL32 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLTREL64 = 46 #54345
+pkg debug/elf, const R_PPC64_PLTREL64 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLTSEQ = 119 #54345
+pkg debug/elf, const R_PPC64_PLTSEQ R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLTSEQ_NOTOC = 121 #54345
+pkg debug/elf, const R_PPC64_PLTSEQ_NOTOC R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLT_PCREL34 = 134 #54345
+pkg debug/elf, const R_PPC64_PLT_PCREL34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_PLT_PCREL34_NOTOC = 135 #54345
+pkg debug/elf, const R_PPC64_PLT_PCREL34_NOTOC R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGH = 240 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGH R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHA = 241 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHA R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHER = 242 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHER R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHER34 = 140 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHER34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHERA = 243 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHERA R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHERA34 = 141 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHERA34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHEST = 244 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHEST R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHEST34 = 142 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHEST34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHESTA = 245 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHESTA R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHESTA34 = 143 #54345
+pkg debug/elf, const R_PPC64_REL16_HIGHESTA34 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_REL30 = 37 #54345
+pkg debug/elf, const R_PPC64_REL30 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_SECTOFF = 33 #54345
+pkg debug/elf, const R_PPC64_SECTOFF R_PPC64 #54345
+pkg debug/elf, const R_PPC64_SECTOFF_HA = 36 #54345
+pkg debug/elf, const R_PPC64_SECTOFF_HA R_PPC64 #54345
+pkg debug/elf, const R_PPC64_SECTOFF_HI = 35 #54345
+pkg debug/elf, const R_PPC64_SECTOFF_HI R_PPC64 #54345
+pkg debug/elf, const R_PPC64_SECTOFF_LO = 34 #54345
+pkg debug/elf, const R_PPC64_SECTOFF_LO R_PPC64 #54345
+pkg debug/elf, const R_PPC64_TPREL28 = 146 #54345
+pkg debug/elf, const R_PPC64_TPREL28 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_UADDR16 = 25 #54345
+pkg debug/elf, const R_PPC64_UADDR16 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_UADDR32 = 24 #54345
+pkg debug/elf, const R_PPC64_UADDR32 R_PPC64 #54345
+pkg debug/elf, const R_PPC64_UADDR64 = 43 #54345
+pkg debug/elf, const R_PPC64_UADDR64 R_PPC64 #54345
index f3ad6e27af4ed7e53c54edf80be7485f53282fe2..5e273223aea951eb282c00f63e0fe8fa70e3e063 100644 (file)
@@ -2540,15 +2540,32 @@ const (
        R_PPC64_GOT16_LO           R_PPC64 = 15 // R_POWERPC_GOT16_LO
        R_PPC64_GOT16_HI           R_PPC64 = 16 // R_POWERPC_GOT16_HI
        R_PPC64_GOT16_HA           R_PPC64 = 17 // R_POWERPC_GOT16_HA
+       R_PPC64_COPY               R_PPC64 = 19 // R_POWERPC_COPY
+       R_PPC64_GLOB_DAT           R_PPC64 = 20 // R_POWERPC_GLOB_DAT
        R_PPC64_JMP_SLOT           R_PPC64 = 21 // R_POWERPC_JMP_SLOT
        R_PPC64_RELATIVE           R_PPC64 = 22 // R_POWERPC_RELATIVE
+       R_PPC64_UADDR32            R_PPC64 = 24 // R_POWERPC_UADDR32
+       R_PPC64_UADDR16            R_PPC64 = 25 // R_POWERPC_UADDR16
        R_PPC64_REL32              R_PPC64 = 26 // R_POWERPC_REL32
+       R_PPC64_PLT32              R_PPC64 = 27 // R_POWERPC_PLT32
+       R_PPC64_PLTREL32           R_PPC64 = 28 // R_POWERPC_PLTREL32
+       R_PPC64_PLT16_LO           R_PPC64 = 29 // R_POWERPC_PLT16_LO
+       R_PPC64_PLT16_HI           R_PPC64 = 30 // R_POWERPC_PLT16_HI
+       R_PPC64_PLT16_HA           R_PPC64 = 31 // R_POWERPC_PLT16_HA
+       R_PPC64_SECTOFF            R_PPC64 = 33 // R_POWERPC_SECTOFF
+       R_PPC64_SECTOFF_LO         R_PPC64 = 34 // R_POWERPC_SECTOFF_LO
+       R_PPC64_SECTOFF_HI         R_PPC64 = 35 // R_POWERPC_SECTOFF_HI
+       R_PPC64_SECTOFF_HA         R_PPC64 = 36 // R_POWERPC_SECTOFF_HA
+       R_PPC64_REL30              R_PPC64 = 37 // R_POWERPC_ADDR30
        R_PPC64_ADDR64             R_PPC64 = 38
        R_PPC64_ADDR16_HIGHER      R_PPC64 = 39
        R_PPC64_ADDR16_HIGHERA     R_PPC64 = 40
        R_PPC64_ADDR16_HIGHEST     R_PPC64 = 41
        R_PPC64_ADDR16_HIGHESTA    R_PPC64 = 42
+       R_PPC64_UADDR64            R_PPC64 = 43
        R_PPC64_REL64              R_PPC64 = 44
+       R_PPC64_PLT64              R_PPC64 = 45
+       R_PPC64_PLTREL64           R_PPC64 = 46
        R_PPC64_TOC16              R_PPC64 = 47
        R_PPC64_TOC16_LO           R_PPC64 = 48
        R_PPC64_TOC16_HI           R_PPC64 = 49
@@ -2621,6 +2638,41 @@ const (
        R_PPC64_REL24_NOTOC        R_PPC64 = 116
        R_PPC64_ADDR64_LOCAL       R_PPC64 = 117
        R_PPC64_ENTRY              R_PPC64 = 118
+       R_PPC64_PLTSEQ             R_PPC64 = 119
+       R_PPC64_PLTCALL            R_PPC64 = 120
+       R_PPC64_PLTSEQ_NOTOC       R_PPC64 = 121
+       R_PPC64_PLTCALL_NOTOC      R_PPC64 = 122
+       R_PPC64_PCREL_OPT          R_PPC64 = 123
+       R_PPC64_D34                R_PPC64 = 128
+       R_PPC64_D34_LO             R_PPC64 = 129
+       R_PPC64_D34_HI30           R_PPC64 = 130
+       R_PPC64_D34_HA30           R_PPC64 = 131
+       R_PPC64_PCREL34            R_PPC64 = 132
+       R_PPC64_GOT_PCREL34        R_PPC64 = 133
+       R_PPC64_PLT_PCREL34        R_PPC64 = 134
+       R_PPC64_PLT_PCREL34_NOTOC  R_PPC64 = 135
+       R_PPC64_ADDR16_HIGHER34    R_PPC64 = 136
+       R_PPC64_ADDR16_HIGHERA34   R_PPC64 = 137
+       R_PPC64_ADDR16_HIGHEST34   R_PPC64 = 138
+       R_PPC64_ADDR16_HIGHESTA34  R_PPC64 = 139
+       R_PPC64_REL16_HIGHER34     R_PPC64 = 140
+       R_PPC64_REL16_HIGHERA34    R_PPC64 = 141
+       R_PPC64_REL16_HIGHEST34    R_PPC64 = 142
+       R_PPC64_REL16_HIGHESTA34   R_PPC64 = 143
+       R_PPC64_D28                R_PPC64 = 144
+       R_PPC64_PCREL28            R_PPC64 = 145
+       R_PPC64_TPREL28            R_PPC64 = 146
+       R_PPC64_DTPREL28           R_PPC64 = 147
+       R_PPC64_GOT_TLSGD_PCREL34  R_PPC64 = 148
+       R_PPC64_GOT_TLSLD_PCREL34  R_PPC64 = 149
+       R_PPC64_GOT_TPREL_PCREL34  R_PPC64 = 150
+       R_PPC64_GOT_DTPREL_PCREL34 R_PPC64 = 151
+       R_PPC64_REL16_HIGH         R_PPC64 = 240
+       R_PPC64_REL16_HIGHA        R_PPC64 = 241
+       R_PPC64_REL16_HIGHER       R_PPC64 = 242
+       R_PPC64_REL16_HIGHERA      R_PPC64 = 243
+       R_PPC64_REL16_HIGHEST      R_PPC64 = 244
+       R_PPC64_REL16_HIGHESTA     R_PPC64 = 245
        R_PPC64_REL16DX_HA         R_PPC64 = 246 // R_POWERPC_REL16DX_HA
        R_PPC64_JMP_IREL           R_PPC64 = 247
        R_PPC64_IRELATIVE          R_PPC64 = 248 // R_POWERPC_IRELATIVE
@@ -2628,6 +2680,8 @@ const (
        R_PPC64_REL16_LO           R_PPC64 = 250 // R_POWERPC_REL16_LO
        R_PPC64_REL16_HI           R_PPC64 = 251 // R_POWERPC_REL16_HI
        R_PPC64_REL16_HA           R_PPC64 = 252 // R_POWERPC_REL16_HA
+       R_PPC64_GNU_VTINHERIT      R_PPC64 = 253
+       R_PPC64_GNU_VTENTRY        R_PPC64 = 254
 )
 
 var rppc64Strings = []intName{
@@ -2649,15 +2703,32 @@ var rppc64Strings = []intName{
        {15, "R_PPC64_GOT16_LO"},
        {16, "R_PPC64_GOT16_HI"},
        {17, "R_PPC64_GOT16_HA"},
+       {19, "R_PPC64_COPY"},
+       {20, "R_PPC64_GLOB_DAT"},
        {21, "R_PPC64_JMP_SLOT"},
        {22, "R_PPC64_RELATIVE"},
+       {24, "R_PPC64_UADDR32"},
+       {25, "R_PPC64_UADDR16"},
        {26, "R_PPC64_REL32"},
+       {27, "R_PPC64_PLT32"},
+       {28, "R_PPC64_PLTREL32"},
+       {29, "R_PPC64_PLT16_LO"},
+       {30, "R_PPC64_PLT16_HI"},
+       {31, "R_PPC64_PLT16_HA"},
+       {33, "R_PPC64_SECTOFF"},
+       {34, "R_PPC64_SECTOFF_LO"},
+       {35, "R_PPC64_SECTOFF_HI"},
+       {36, "R_PPC64_SECTOFF_HA"},
+       {37, "R_PPC64_REL30"},
        {38, "R_PPC64_ADDR64"},
        {39, "R_PPC64_ADDR16_HIGHER"},
        {40, "R_PPC64_ADDR16_HIGHERA"},
        {41, "R_PPC64_ADDR16_HIGHEST"},
        {42, "R_PPC64_ADDR16_HIGHESTA"},
+       {43, "R_PPC64_UADDR64"},
        {44, "R_PPC64_REL64"},
+       {45, "R_PPC64_PLT64"},
+       {46, "R_PPC64_PLTREL64"},
        {47, "R_PPC64_TOC16"},
        {48, "R_PPC64_TOC16_LO"},
        {49, "R_PPC64_TOC16_HI"},
@@ -2730,6 +2801,41 @@ var rppc64Strings = []intName{
        {116, "R_PPC64_REL24_NOTOC"},
        {117, "R_PPC64_ADDR64_LOCAL"},
        {118, "R_PPC64_ENTRY"},
+       {119, "R_PPC64_PLTSEQ"},
+       {120, "R_PPC64_PLTCALL"},
+       {121, "R_PPC64_PLTSEQ_NOTOC"},
+       {122, "R_PPC64_PLTCALL_NOTOC"},
+       {123, "R_PPC64_PCREL_OPT"},
+       {128, "R_PPC64_D34"},
+       {129, "R_PPC64_D34_LO"},
+       {130, "R_PPC64_D34_HI30"},
+       {131, "R_PPC64_D34_HA30"},
+       {132, "R_PPC64_PCREL34"},
+       {133, "R_PPC64_GOT_PCREL34"},
+       {134, "R_PPC64_PLT_PCREL34"},
+       {135, "R_PPC64_PLT_PCREL34_NOTOC"},
+       {136, "R_PPC64_ADDR16_HIGHER34"},
+       {137, "R_PPC64_ADDR16_HIGHERA34"},
+       {138, "R_PPC64_ADDR16_HIGHEST34"},
+       {139, "R_PPC64_ADDR16_HIGHESTA34"},
+       {140, "R_PPC64_REL16_HIGHER34"},
+       {141, "R_PPC64_REL16_HIGHERA34"},
+       {142, "R_PPC64_REL16_HIGHEST34"},
+       {143, "R_PPC64_REL16_HIGHESTA34"},
+       {144, "R_PPC64_D28"},
+       {145, "R_PPC64_PCREL28"},
+       {146, "R_PPC64_TPREL28"},
+       {147, "R_PPC64_DTPREL28"},
+       {148, "R_PPC64_GOT_TLSGD_PCREL34"},
+       {149, "R_PPC64_GOT_TLSLD_PCREL34"},
+       {150, "R_PPC64_GOT_TPREL_PCREL34"},
+       {151, "R_PPC64_GOT_DTPREL_PCREL34"},
+       {240, "R_PPC64_REL16_HIGH"},
+       {241, "R_PPC64_REL16_HIGHA"},
+       {242, "R_PPC64_REL16_HIGHER"},
+       {243, "R_PPC64_REL16_HIGHERA"},
+       {244, "R_PPC64_REL16_HIGHEST"},
+       {245, "R_PPC64_REL16_HIGHESTA"},
        {246, "R_PPC64_REL16DX_HA"},
        {247, "R_PPC64_JMP_IREL"},
        {248, "R_PPC64_IRELATIVE"},
@@ -2737,6 +2843,8 @@ var rppc64Strings = []intName{
        {250, "R_PPC64_REL16_LO"},
        {251, "R_PPC64_REL16_HI"},
        {252, "R_PPC64_REL16_HA"},
+       {253, "R_PPC64_GNU_VTINHERIT"},
+       {254, "R_PPC64_GNU_VTENTRY"},
 }
 
 func (i R_PPC64) String() string   { return stringName(uint32(i), rppc64Strings, false) }