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>
This commit is contained in:
Paul E. Murphy 2022-08-08 15:58:04 -05:00 committed by Paul Murphy
parent 51fdfeb1ce
commit 2b6ff90851
2 changed files with 216 additions and 0 deletions

108
api/next/54345.txt Normal file
View file

@ -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

View 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) }