Skip to content

Commit a9ad9e2

Browse files
authored
[PAC][llvm-readobj][AArch64] Move PAuth GOT relocs out of private space (#118214)
Apply change from the spec ARM-software/abi-aa#300
1 parent c4a1e0e commit a9ad9e2

File tree

2 files changed

+50
-50
lines changed

2 files changed

+50
-50
lines changed

llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def

+20-20
Original file line numberDiff line numberDiff line change
@@ -143,27 +143,27 @@ ELF_RELOC(R_AARCH64_IRELATIVE, 0x408)
143143
// PAuthABI static and dynamic relocations: defined in pauthabielf64,
144144
// https://github.com/ARM-software/abi-aa
145145
ELF_RELOC(R_AARCH64_AUTH_ABS64, 0x244)
146+
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G0, 0x245)
147+
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G0_NC, 0x246)
148+
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G1, 0x247)
149+
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G1_NC, 0x248)
150+
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G2, 0x249)
151+
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G2_NC, 0x24a)
152+
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G3, 0x24b)
153+
ELF_RELOC(R_AARCH64_AUTH_GOT_LD_PREL19, 0x24c)
154+
ELF_RELOC(R_AARCH64_AUTH_LD64_GOTOFF_LO15, 0x24d)
155+
ELF_RELOC(R_AARCH64_AUTH_ADR_GOT_PAGE, 0x24e)
156+
ELF_RELOC(R_AARCH64_AUTH_LD64_GOT_LO12_NC, 0x24f)
157+
ELF_RELOC(R_AARCH64_AUTH_LD64_GOTPAGE_LO15, 0x250)
158+
ELF_RELOC(R_AARCH64_AUTH_GOT_ADD_LO12_NC, 0x251)
159+
ELF_RELOC(R_AARCH64_AUTH_GOT_ADR_PREL_LO21, 0x252)
160+
ELF_RELOC(R_AARCH64_AUTH_TLSDESC_ADR_PAGE21, 0x253)
161+
ELF_RELOC(R_AARCH64_AUTH_TLSDESC_LD64_LO12, 0x254)
162+
ELF_RELOC(R_AARCH64_AUTH_TLSDESC_ADD_LO12, 0x255)
146163
ELF_RELOC(R_AARCH64_AUTH_RELATIVE, 0x411)
147-
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G0, 0x8110)
148-
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G0_NC, 0x8111)
149-
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G1, 0x8112)
150-
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G1_NC, 0x8113)
151-
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G2, 0x8114)
152-
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G2_NC, 0x8115)
153-
ELF_RELOC(R_AARCH64_AUTH_MOVW_GOTOFF_G3, 0x8116)
154-
ELF_RELOC(R_AARCH64_AUTH_GOT_LD_PREL19, 0x8117)
155-
ELF_RELOC(R_AARCH64_AUTH_LD64_GOTOFF_LO15, 0x8118)
156-
ELF_RELOC(R_AARCH64_AUTH_ADR_GOT_PAGE, 0x8119)
157-
ELF_RELOC(R_AARCH64_AUTH_LD64_GOT_LO12_NC, 0x811a)
158-
ELF_RELOC(R_AARCH64_AUTH_LD64_GOTPAGE_LO15, 0x811b)
159-
ELF_RELOC(R_AARCH64_AUTH_GOT_ADD_LO12_NC, 0x811c)
160-
ELF_RELOC(R_AARCH64_AUTH_GOT_ADR_PREL_LO21, 0x811d)
161-
ELF_RELOC(R_AARCH64_AUTH_TLSDESC_ADR_PAGE21, 0x811e)
162-
ELF_RELOC(R_AARCH64_AUTH_TLSDESC_LD64_LO12, 0x811f)
163-
ELF_RELOC(R_AARCH64_AUTH_TLSDESC_ADD_LO12, 0x8120)
164-
ELF_RELOC(R_AARCH64_AUTH_GLOB_DAT, 0xe201)
165-
ELF_RELOC(R_AARCH64_AUTH_TLSDESC, 0xe202)
166-
ELF_RELOC(R_AARCH64_AUTH_IRELATIVE, 0xe203)
164+
ELF_RELOC(R_AARCH64_AUTH_GLOB_DAT, 0x412)
165+
ELF_RELOC(R_AARCH64_AUTH_TLSDESC, 0x413)
166+
ELF_RELOC(R_AARCH64_AUTH_IRELATIVE, 0x414)
167167

168168
// ELF32
169169
// ELF_RELOC(R_AARCH64_P32_NONE, 0)

llvm/test/tools/llvm-readobj/ELF/reloc-types-aarch64.test

+30-30
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,23 @@
120120
# CHECK: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12 (572)
121121
# CHECK: Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC (573)
122122
# CHECK: Type: R_AARCH64_AUTH_ABS64 (580)
123+
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0 (581)
124+
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0_NC (582)
125+
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1 (583)
126+
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1_NC (584)
127+
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G2 (585)
128+
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G2_NC (586)
129+
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G3 (587)
130+
# CHECK: Type: R_AARCH64_AUTH_GOT_LD_PREL19 (588)
131+
# CHECK: Type: R_AARCH64_AUTH_LD64_GOTOFF_LO15 (589)
132+
# CHECK: Type: R_AARCH64_AUTH_ADR_GOT_PAGE (590)
133+
# CHECK: Type: R_AARCH64_AUTH_LD64_GOT_LO12_NC (591)
134+
# CHECK: Type: R_AARCH64_AUTH_LD64_GOTPAGE_LO15 (592)
135+
# CHECK: Type: R_AARCH64_AUTH_GOT_ADD_LO12_NC (593)
136+
# CHECK: Type: R_AARCH64_AUTH_GOT_ADR_PREL_LO21 (594)
137+
# CHECK: Type: R_AARCH64_AUTH_TLSDESC_ADR_PAGE21 (595)
138+
# CHECK: Type: R_AARCH64_AUTH_TLSDESC_LD64_LO12 (596)
139+
# CHECK: Type: R_AARCH64_AUTH_TLSDESC_ADD_LO12 (597)
123140
# CHECK: Type: R_AARCH64_COPY (1024)
124141
# CHECK: Type: R_AARCH64_GLOB_DAT (1025)
125142
# CHECK: Type: R_AARCH64_JUMP_SLOT (1026)
@@ -130,26 +147,9 @@
130147
# CHECK: Type: R_AARCH64_TLSDESC (1031)
131148
# CHECK: Type: R_AARCH64_IRELATIVE (1032)
132149
# CHECK: Type: R_AARCH64_AUTH_RELATIVE (1041)
133-
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0 (33040)
134-
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0_NC (33041)
135-
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1 (33042)
136-
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1_NC (33043)
137-
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G2 (33044)
138-
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G2_NC (33045)
139-
# CHECK: Type: R_AARCH64_AUTH_MOVW_GOTOFF_G3 (33046)
140-
# CHECK: Type: R_AARCH64_AUTH_GOT_LD_PREL19 (33047)
141-
# CHECK: Type: R_AARCH64_AUTH_LD64_GOTOFF_LO15 (33048)
142-
# CHECK: Type: R_AARCH64_AUTH_ADR_GOT_PAGE (33049)
143-
# CHECK: Type: R_AARCH64_AUTH_LD64_GOT_LO12_NC (33050)
144-
# CHECK: Type: R_AARCH64_AUTH_LD64_GOTPAGE_LO15 (33051)
145-
# CHECK: Type: R_AARCH64_AUTH_GOT_ADD_LO12_NC (33052)
146-
# CHECK: Type: R_AARCH64_AUTH_GOT_ADR_PREL_LO21 (33053)
147-
# CHECK: Type: R_AARCH64_AUTH_TLSDESC_ADR_PAGE21 (33054)
148-
# CHECK: Type: R_AARCH64_AUTH_TLSDESC_LD64_LO12 (33055)
149-
# CHECK: Type: R_AARCH64_AUTH_TLSDESC_ADD_LO12 (33056)
150-
# CHECK: Type: R_AARCH64_AUTH_GLOB_DAT (57857)
151-
# CHECK: Type: R_AARCH64_AUTH_TLSDESC (57858)
152-
# CHECK: Type: R_AARCH64_AUTH_IRELATIVE (57859)
150+
# CHECK: Type: R_AARCH64_AUTH_GLOB_DAT (1042)
151+
# CHECK: Type: R_AARCH64_AUTH_TLSDESC (1043)
152+
# CHECK: Type: R_AARCH64_AUTH_IRELATIVE (1044)
153153

154154
--- !ELF
155155
FileHeader:
@@ -277,16 +277,6 @@ Sections:
277277
- Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12
278278
- Type: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC
279279
- Type: R_AARCH64_AUTH_ABS64
280-
- Type: R_AARCH64_COPY
281-
- Type: R_AARCH64_GLOB_DAT
282-
- Type: R_AARCH64_JUMP_SLOT
283-
- Type: R_AARCH64_RELATIVE
284-
- Type: R_AARCH64_TLS_DTPMOD64
285-
- Type: R_AARCH64_TLS_DTPREL64
286-
- Type: R_AARCH64_TLS_TPREL64
287-
- Type: R_AARCH64_TLSDESC
288-
- Type: R_AARCH64_IRELATIVE
289-
- Type: R_AARCH64_AUTH_RELATIVE
290280
- Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0
291281
- Type: R_AARCH64_AUTH_MOVW_GOTOFF_G0_NC
292282
- Type: R_AARCH64_AUTH_MOVW_GOTOFF_G1
@@ -304,6 +294,16 @@ Sections:
304294
- Type: R_AARCH64_AUTH_TLSDESC_ADR_PAGE21
305295
- Type: R_AARCH64_AUTH_TLSDESC_LD64_LO12
306296
- Type: R_AARCH64_AUTH_TLSDESC_ADD_LO12
297+
- Type: R_AARCH64_COPY
298+
- Type: R_AARCH64_GLOB_DAT
299+
- Type: R_AARCH64_JUMP_SLOT
300+
- Type: R_AARCH64_RELATIVE
301+
- Type: R_AARCH64_TLS_DTPMOD64
302+
- Type: R_AARCH64_TLS_DTPREL64
303+
- Type: R_AARCH64_TLS_TPREL64
304+
- Type: R_AARCH64_TLSDESC
305+
- Type: R_AARCH64_IRELATIVE
306+
- Type: R_AARCH64_AUTH_RELATIVE
307307
- Type: R_AARCH64_AUTH_GLOB_DAT
308308
- Type: R_AARCH64_AUTH_TLSDESC
309309
- Type: R_AARCH64_AUTH_IRELATIVE

0 commit comments

Comments
 (0)