Skip to content

Commit 3989e22

Browse files
authored
[test][lld][ELF] Enhance pack-dyn-relocs.s test (#87756)
Use symbol `.data` (STT_SECTION) instead of `__ehdr_start` for some relocation entries. See discussion in [72714/#discussion_r1517127619](#72714)
1 parent 0a0fccf commit 3989e22

File tree

1 file changed

+50
-50
lines changed

1 file changed

+50
-50
lines changed

lld/test/ELF/pack-dyn-relocs.s

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -198,34 +198,34 @@
198198
// RUN: llvm-readobj -r %t2.a64 | FileCheck --check-prefix=UNPACKED64 %s
199199

200200
// UNPACKED64: Section ({{.+}}) .rela.dyn {
201-
// UNPACKED64-NEXT: 0x30690 R_AARCH64_RELATIVE - 0x0
202-
// UNPACKED64-NEXT: 0x30698 R_AARCH64_RELATIVE - 0x1
201+
// UNPACKED64-NEXT: 0x30690 R_AARCH64_RELATIVE - 0x30690
202+
// UNPACKED64-NEXT: 0x30698 R_AARCH64_RELATIVE - 0x30691
203203
// UNPACKED64-NEXT: 0x306A0 R_AARCH64_RELATIVE - 0x2
204204
// UNPACKED64-NEXT: 0x306A8 R_AARCH64_RELATIVE - 0xFFFFFFFFFFFFFFFF
205205
// UNPACKED64-NEXT: 0x306B0 R_AARCH64_RELATIVE - 0x80000000
206206
// UNPACKED64-NEXT: 0x306B8 R_AARCH64_RELATIVE - 0x6
207207
// UNPACKED64-NEXT: 0x306C0 R_AARCH64_RELATIVE - 0x7
208-
// UNPACKED64-NEXT: 0x306C8 R_AARCH64_RELATIVE - 0x8
208+
// UNPACKED64-NEXT: 0x306C8 R_AARCH64_RELATIVE - 0x30698
209209

210-
// UNPACKED64-NEXT: 0x306D8 R_AARCH64_RELATIVE - 0x1
210+
// UNPACKED64-NEXT: 0x306D8 R_AARCH64_RELATIVE - 0x30691
211211
// UNPACKED64-NEXT: 0x306E0 R_AARCH64_RELATIVE - 0x2
212212
// UNPACKED64-NEXT: 0x306E8 R_AARCH64_RELATIVE - 0x3
213213
// UNPACKED64-NEXT: 0x306F0 R_AARCH64_RELATIVE - 0x4
214214
// UNPACKED64-NEXT: 0x306F8 R_AARCH64_RELATIVE - 0x5
215215
// UNPACKED64-NEXT: 0x30700 R_AARCH64_RELATIVE - 0x6
216-
// UNPACKED64-NEXT: 0x30708 R_AARCH64_RELATIVE - 0x7
216+
// UNPACKED64-NEXT: 0x30708 R_AARCH64_RELATIVE - 0x30697
217217

218-
// UNPACKED64-NEXT: 0x30720 R_AARCH64_RELATIVE - 0x1
218+
// UNPACKED64-NEXT: 0x30720 R_AARCH64_RELATIVE - 0x30691
219219
// UNPACKED64-NEXT: 0x30728 R_AARCH64_RELATIVE - 0x2
220220
// UNPACKED64-NEXT: 0x30730 R_AARCH64_RELATIVE - 0x3
221221
// UNPACKED64-NEXT: 0x30738 R_AARCH64_RELATIVE - 0x4
222222
// UNPACKED64-NEXT: 0x30740 R_AARCH64_RELATIVE - 0x5
223223
// UNPACKED64-NEXT: 0x30748 R_AARCH64_RELATIVE - 0x6
224224
// UNPACKED64-NEXT: 0x30750 R_AARCH64_RELATIVE - 0x7
225225
// UNPACKED64-NEXT: 0x30758 R_AARCH64_RELATIVE - 0x8
226-
// UNPACKED64-NEXT: 0x30760 R_AARCH64_RELATIVE - 0x9
226+
// UNPACKED64-NEXT: 0x30760 R_AARCH64_RELATIVE - 0x30699
227227

228-
// UNPACKED64-NEXT: 0x30769 R_AARCH64_RELATIVE - 0xA
228+
// UNPACKED64-NEXT: 0x30769 R_AARCH64_RELATIVE - 0x3069A
229229

230230
// UNPACKED64-NEXT: 0x306D0 R_AARCH64_ABS64 bar2 0x1
231231
// UNPACKED64-NEXT: 0x30718 R_AARCH64_ABS64 bar2 0x0
@@ -247,47 +247,47 @@
247247

248248
// ANDROID64: (DEBUG) 0x0
249249
// ANDROID64-NEXT: (ANDROID_RELA) 0x[[#ANDROID]]
250-
// ANDROID64-NEXT: (ANDROID_RELASZ) 122 (bytes)
250+
// ANDROID64-NEXT: (ANDROID_RELASZ) 136 (bytes)
251251
// ANDROID64-NEXT: (RELAENT) 24 (bytes)
252252

253253
// ANDROID64-HEADERS: 0x0000000060000011 ANDROID_RELA [[ADDR]]
254254
// ANDROID64-HEADERS: 0x0000000060000012 ANDROID_RELASZ [[SIZE]]
255255

256256
// ANDROID64: Relocation section '.rela.dyn' at offset {{.*}} contains 33 entries:
257257
// ANDROID64-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
258-
// ANDROID64-NEXT: 00000000000303e8 0000000000000403 R_AARCH64_RELATIVE 0
259-
// ANDROID64-NEXT: 00000000000303f0 0000000000000403 R_AARCH64_RELATIVE 1
260-
// ANDROID64-NEXT: 00000000000303f8 0000000000000403 R_AARCH64_RELATIVE 2
261-
// ANDROID64-NEXT: 0000000000030400 0000000000000403 R_AARCH64_RELATIVE ffffffffffffffff
262-
// ANDROID64-NEXT: 0000000000030408 0000000000000403 R_AARCH64_RELATIVE 80000000
263-
// ANDROID64-NEXT: 0000000000030410 0000000000000403 R_AARCH64_RELATIVE 6
264-
// ANDROID64-NEXT: 0000000000030418 0000000000000403 R_AARCH64_RELATIVE 7
265-
// ANDROID64-NEXT: 0000000000030420 0000000000000403 R_AARCH64_RELATIVE 8
266-
// ANDROID64-NEXT: 0000000000030478 0000000000000403 R_AARCH64_RELATIVE 1
267-
// ANDROID64-NEXT: 0000000000030480 0000000000000403 R_AARCH64_RELATIVE 2
268-
// ANDROID64-NEXT: 0000000000030488 0000000000000403 R_AARCH64_RELATIVE 3
269-
// ANDROID64-NEXT: 0000000000030490 0000000000000403 R_AARCH64_RELATIVE 4
270-
// ANDROID64-NEXT: 0000000000030498 0000000000000403 R_AARCH64_RELATIVE 5
271-
// ANDROID64-NEXT: 00000000000304a0 0000000000000403 R_AARCH64_RELATIVE 6
272-
// ANDROID64-NEXT: 00000000000304a8 0000000000000403 R_AARCH64_RELATIVE 7
273-
// ANDROID64-NEXT: 00000000000304b0 0000000000000403 R_AARCH64_RELATIVE 8
274-
// ANDROID64-NEXT: 00000000000304b8 0000000000000403 R_AARCH64_RELATIVE 9
275-
// ANDROID64-NEXT: 0000000000030430 0000000000000403 R_AARCH64_RELATIVE 1
276-
// ANDROID64-NEXT: 0000000000030438 0000000000000403 R_AARCH64_RELATIVE 2
277-
// ANDROID64-NEXT: 0000000000030440 0000000000000403 R_AARCH64_RELATIVE 3
278-
// ANDROID64-NEXT: 0000000000030448 0000000000000403 R_AARCH64_RELATIVE 4
279-
// ANDROID64-NEXT: 0000000000030450 0000000000000403 R_AARCH64_RELATIVE 5
280-
// ANDROID64-NEXT: 0000000000030458 0000000000000403 R_AARCH64_RELATIVE 6
281-
// ANDROID64-NEXT: 0000000000030460 0000000000000403 R_AARCH64_RELATIVE 7
282-
// ANDROID64-NEXT: 00000000000304c1 0000000000000403 R_AARCH64_RELATIVE a
283-
// ANDROID64-NEXT: 0000000000030470 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
284-
// ANDROID64-NEXT: 00000000000304c9 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
258+
// ANDROID64-NEXT: 00000000000303f0 0000000000000403 R_AARCH64_RELATIVE 303f0
259+
// ANDROID64-NEXT: 00000000000303f8 0000000000000403 R_AARCH64_RELATIVE 303f1
260+
// ANDROID64-NEXT: 0000000000030400 0000000000000403 R_AARCH64_RELATIVE 2
261+
// ANDROID64-NEXT: 0000000000030408 0000000000000403 R_AARCH64_RELATIVE ffffffffffffffff
262+
// ANDROID64-NEXT: 0000000000030410 0000000000000403 R_AARCH64_RELATIVE 80000000
263+
// ANDROID64-NEXT: 0000000000030418 0000000000000403 R_AARCH64_RELATIVE 6
264+
// ANDROID64-NEXT: 0000000000030420 0000000000000403 R_AARCH64_RELATIVE 7
265+
// ANDROID64-NEXT: 0000000000030428 0000000000000403 R_AARCH64_RELATIVE 303f8
266+
// ANDROID64-NEXT: 0000000000030480 0000000000000403 R_AARCH64_RELATIVE 303f1
267+
// ANDROID64-NEXT: 0000000000030488 0000000000000403 R_AARCH64_RELATIVE 2
268+
// ANDROID64-NEXT: 0000000000030490 0000000000000403 R_AARCH64_RELATIVE 3
269+
// ANDROID64-NEXT: 0000000000030498 0000000000000403 R_AARCH64_RELATIVE 4
270+
// ANDROID64-NEXT: 00000000000304a0 0000000000000403 R_AARCH64_RELATIVE 5
271+
// ANDROID64-NEXT: 00000000000304a8 0000000000000403 R_AARCH64_RELATIVE 6
272+
// ANDROID64-NEXT: 00000000000304b0 0000000000000403 R_AARCH64_RELATIVE 7
273+
// ANDROID64-NEXT: 00000000000304b8 0000000000000403 R_AARCH64_RELATIVE 8
274+
// ANDROID64-NEXT: 00000000000304c0 0000000000000403 R_AARCH64_RELATIVE 303f9
275+
// ANDROID64-NEXT: 0000000000030438 0000000000000403 R_AARCH64_RELATIVE 303f1
276+
// ANDROID64-NEXT: 0000000000030440 0000000000000403 R_AARCH64_RELATIVE 2
277+
// ANDROID64-NEXT: 0000000000030448 0000000000000403 R_AARCH64_RELATIVE 3
278+
// ANDROID64-NEXT: 0000000000030450 0000000000000403 R_AARCH64_RELATIVE 4
279+
// ANDROID64-NEXT: 0000000000030458 0000000000000403 R_AARCH64_RELATIVE 5
280+
// ANDROID64-NEXT: 0000000000030460 0000000000000403 R_AARCH64_RELATIVE 6
281+
// ANDROID64-NEXT: 0000000000030468 0000000000000403 R_AARCH64_RELATIVE 303f7
282+
// ANDROID64-NEXT: 00000000000304c9 0000000000000403 R_AARCH64_RELATIVE 303fa
283+
// ANDROID64-NEXT: 0000000000030478 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
285284
// ANDROID64-NEXT: 00000000000304d1 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
286-
// ANDROID64-NEXT: 00000000000304e9 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
287-
// ANDROID64-NEXT: 0000000000030428 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 1
288-
// ANDROID64-NEXT: 0000000000030468 0000000200000101 R_AARCH64_ABS64 0000000000000000 zed2 + 0
289-
// ANDROID64-NEXT: 00000000000304d9 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 1
285+
// ANDROID64-NEXT: 00000000000304d9 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
286+
// ANDROID64-NEXT: 00000000000304f1 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
287+
// ANDROID64-NEXT: 0000000000030430 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 1
288+
// ANDROID64-NEXT: 0000000000030470 0000000200000101 R_AARCH64_ABS64 0000000000000000 zed2 + 0
290289
// ANDROID64-NEXT: 00000000000304e1 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 1
290+
// ANDROID64-NEXT: 00000000000304e9 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 1
291291
// ANDROID64-EMPTY:
292292

293293
// RUN: ld.lld -pie --pack-dyn-relocs=relr %t.a64.o %t.a64.so -o %t4.a64
@@ -317,7 +317,7 @@
317317
/// Any relative relocations with odd offset stay in SHT_RELA.
318318
// RELR64: Relocation section '.rela.dyn' at offset {{.*}} contains 9 entries:
319319
// RELR64-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
320-
// RELR64-NEXT: 0000000000030569 0000000000000403 R_AARCH64_RELATIVE a
320+
// RELR64-NEXT: 0000000000030569 0000000000000403 R_AARCH64_RELATIVE 3049a
321321
// RELR64-NEXT: 00000000000304d0 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 1
322322
// RELR64-NEXT: 0000000000030518 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
323323
// RELR64-NEXT: 0000000000030571 0000000100000101 R_AARCH64_ABS64 0000000000000000 bar2 + 0
@@ -355,43 +355,43 @@
355355
// RELR64-NEXT: 0000000000030560 0000000000000403 R_AARCH64_RELATIVE
356356
// RELR64-EMPTY:
357357
// RELR64-NEXT: Hex dump of section '.data':
358-
// RELR64-NEXT: 0x00030490 00000000 00000000 01000000 00000000 .
358+
// RELR64-NEXT: 0x00030490 90040300 00000000 91040300 00000000 .
359359
// RELR64-NEXT: 0x000304a0 02000000 00000000 ffffffff ffffffff .
360360
// RELR64-NEXT: 0x000304b0 00000080 00000000 06000000 00000000 .
361361

362362
.data
363363
.balign 2
364-
.dc.a __ehdr_start
365-
.dc.a __ehdr_start + 1
364+
.dc.a .data
365+
.dc.a .data + 1
366366
.dc.a __ehdr_start + 2
367367
.dc.a __ehdr_start - 1
368368
.dc.a __ehdr_start + 0x80000000
369369
.dc.a __ehdr_start + 6
370370
.dc.a __ehdr_start + 7
371-
.dc.a __ehdr_start + 8
371+
.dc.a .data + 8
372372
.dc.a bar2 + 1
373373

374-
.dc.a __ehdr_start + 1
374+
.dc.a .data + 1
375375
.dc.a __ehdr_start + 2
376376
.dc.a __ehdr_start + 3
377377
.dc.a __ehdr_start + 4
378378
.dc.a __ehdr_start + 5
379379
.dc.a __ehdr_start + 6
380-
.dc.a __ehdr_start + 7
380+
.dc.a .data + 7
381381
.dc.a zed2
382382
.dc.a bar2
383383

384-
.dc.a __ehdr_start + 1
384+
.dc.a .data + 1
385385
.dc.a __ehdr_start + 2
386386
.dc.a __ehdr_start + 3
387387
.dc.a __ehdr_start + 4
388388
.dc.a __ehdr_start + 5
389389
.dc.a __ehdr_start + 6
390390
.dc.a __ehdr_start + 7
391391
.dc.a __ehdr_start + 8
392-
.dc.a __ehdr_start + 9
392+
.dc.a .data + 9
393393
.byte 00
394-
.dc.a __ehdr_start + 10
394+
.dc.a .data + 10
395395
.dc.a bar2
396396
.dc.a bar2
397397
.dc.a bar2 + 1

0 commit comments

Comments
 (0)