From: Paul E. Murphy Date: Mon, 8 Aug 2022 20:58:04 +0000 (-0500) Subject: debug/elf: define additional PPC64 ELFv2 relocations X-Git-Tag: go1.20rc1~1123 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2b6ff90851b08d4595a55602e25265f596ac3b5b;p=gostls13.git 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 Reviewed-by: Heschi Kreinick Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot --- diff --git a/api/next/54345.txt b/api/next/54345.txt new file mode 100644 index 0000000000..50cc2d1711 --- /dev/null +++ b/api/next/54345.txt @@ -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 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) }