aboutsummaryrefslogtreecommitdiff
path: root/src/debug
diff options
context:
space:
mode:
authorPaul E. Murphy <murp@ibm.com>2022-08-08 15:58:04 -0500
committerPaul Murphy <murp@ibm.com>2022-09-08 13:31:46 +0000
commit2b6ff90851b08d4595a55602e25265f596ac3b5b (patch)
tree9ef952204f6a949cb85f71b4bafb8c25f9ddfc11 /src/debug
parent51fdfeb1ce89c61332e28ef97a3e72a1d327c2df (diff)
downloadgo-2b6ff90851b08d4595a55602e25265f596ac3b5b.tar.xz
debug/elf: define additional PPC64 ELFv2 relocations
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>
Diffstat (limited to 'src/debug')
-rw-r--r--src/debug/elf/elf.go108
1 files changed, 108 insertions, 0 deletions
diff --git a/src/debug/elf/elf.go b/src/debug/elf/elf.go
index f3ad6e27af..5e273223ae 100644
--- a/src/debug/elf/elf.go
+++ b/src/debug/elf/elf.go
@@ -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) }