Skip to content

Commit c5ccae4

Browse files
committed
[ELF][test] Make tests less sensitive of addresses/number of sections
1 parent 0994463 commit c5ccae4

File tree

5 files changed

+28
-361
lines changed

5 files changed

+28
-361
lines changed

lld/test/ELF/aarch64-feature-bti.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@
185185
# RELV-NEXT: nop
186186
# RELV-LABEL: <funcRelVtable@plt>:
187187
# RELV-NEXT: 103c8: bti c
188-
# RELV-NEXT: adrp x16, 0x30000 <_DYNAMIC+0xfc20>
188+
# RELV-NEXT: adrp x16, 0x30000
189189
# RELV-NEXT: ldr x17, [x16, #1216]
190190
# RELV-NEXT: add x16, x16, #1216
191191
# RELV-NEXT: br x17

lld/test/ELF/basic-ppc64.s

Lines changed: 19 additions & 350 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
# REQUIRES: ppc
2-
# RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o
3-
# RUN: ld.lld --hash-style=sysv -discard-all -shared %t.o -o %t.so
4-
# RUN: llvm-readobj --file-headers --sections --section-data -l %t.so | FileCheck --check-prefixes=CHECK,LE %s
2+
# RUN: llvm-mc -filetype=obj -triple=powerpc64le %s -o %tle.o
3+
# RUN: ld.lld --hash-style=sysv -discard-all -shared %tle.o -o %tle.so
4+
# RUN: llvm-readelf -hSl %tle.so | FileCheck --check-prefixes=CHECK,LE %s
55

6-
# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o
7-
# RUN: ld.lld --hash-style=sysv -discard-all -shared %t.o -o %t.so
8-
# RUN: llvm-readobj --file-headers --sections --section-data -l %t.so | FileCheck --check-prefixes=CHECK,BE %s
6+
# RUN: llvm-mc -filetype=obj -triple=powerpc64 %s -o %tbe.o
7+
# RUN: ld.lld --hash-style=sysv -discard-all -shared %tbe.o -o %tbe.so
8+
# RUN: llvm-readelf -hSl %tbe.so | FileCheck --check-prefixes=CHECK,BE %s
9+
10+
# CHECK: Class: ELF64
11+
# LE-NEXT: Data: 2's complement, little endian
12+
# BE-NEXT: Data: 2's complement, big endian
13+
# CHECK-NEXT: Version: 1 (current)
14+
# CHECK-NEXT: OS/ABI: UNIX - System V
15+
# CHECK-NEXT: ABI Version: 0
16+
# CHECK-NEXT: Type: DYN (Shared object file)
17+
# CHECK-NEXT: Machine: PowerPC64
18+
19+
# CHECK: Name Type Address Off Size ES Flg Lk Inf Al
20+
# CHECK: .branch_lt NOBITS {{.*}} 000000 00 WA 0 0 8
921

1022
.abiversion 2
1123
# Exits with return code 55 on linux.
@@ -14,347 +26,4 @@
1426
li 3,55
1527
sc
1628

17-
// CHECK: Format: elf64-powerpc
18-
// LE-NEXT: Arch: powerpc64le
19-
// BE-NEXT: Arch: powerpc64{{$}}
20-
// CHECK-NEXT: AddressSize: 64bit
21-
// CHECK-NEXT: LoadName:
22-
// CHECK-NEXT: ElfHeader {
23-
// CHECK-NEXT: Ident {
24-
// CHECK-NEXT: Magic: (7F 45 4C 46)
25-
// CHECK-NEXT: Class: 64-bit (0x2)
26-
// LE-NEXT: DataEncoding: LittleEndian (0x1)
27-
// BE-NEXT: DataEncoding: BigEndian (0x2)
28-
// CHECK-NEXT: FileVersion: 1
29-
// CHECK-NEXT: OS/ABI: SystemV (0x0)
30-
// CHECK-NEXT: ABIVersion: 0
31-
// CHECK-NEXT: Unused: (00 00 00 00 00 00 00)
32-
// CHECK-NEXT: }
33-
// CHECK-NEXT: Type: SharedObject (0x3)
34-
// CHECK-NEXT: Machine: EM_PPC64 (0x15)
35-
// CHECK-NEXT: Version: 1
36-
// CHECK-NEXT: Entry: 0x0
37-
// CHECK-NEXT: ProgramHeaderOffset: 0x40
38-
// CHECK-NEXT: SectionHeaderOffset: 0x340
39-
// CHECK-NEXT: Flags [ (0x2)
40-
// CHECK-NEXT: 0x2
41-
// CHECK-NEXT: ]
42-
// CHECK-NEXT: HeaderSize: 64
43-
// CHECK-NEXT: ProgramHeaderEntrySize: 56
44-
// CHECK-NEXT: ProgramHeaderCount: 7
45-
// CHECK-NEXT: SectionHeaderEntrySize: 64
46-
// CHECK-NEXT: SectionHeaderCount: 11
47-
// CHECK-NEXT: StringTableSectionIndex: 9
48-
// CHECK-NEXT:}
49-
// CHECK-NEXT:Sections [
50-
// CHECK-NEXT: Section {
51-
// CHECK-NEXT: Index: 0
52-
// CHECK-NEXT: Name: (0)
53-
// CHECK-NEXT: Type: SHT_NULL (0x0)
54-
// CHECK-NEXT: Flags [ (0x0)
55-
// CHECK-NEXT: ]
56-
// CHECK-NEXT: Address: 0x0
57-
// CHECK-NEXT: Offset: 0x0
58-
// CHECK-NEXT: Size: 0
59-
// CHECK-NEXT: Link: 0
60-
// CHECK-NEXT: Info: 0
61-
// CHECK-NEXT: AddressAlignment: 0
62-
// CHECK-NEXT: EntrySize: 0
63-
// CHECK-NEXT: SectionData (
64-
// CHECK-NEXT: )
65-
// CHECK-NEXT: }
66-
// CHECK-NEXT: Section {
67-
// CHECK-NEXT: Index: 1
68-
// CHECK-NEXT: Name: .dynsym (1)
69-
// CHECK-NEXT: Type: SHT_DYNSYM (0xB)
70-
// CHECK-NEXT: Flags [ (0x2)
71-
// CHECK-NEXT: SHF_ALLOC (0x2)
72-
// CHECK-NEXT: ]
73-
// CHECK-NEXT: Address: 0x200
74-
// CHECK-NEXT: Offset: 0x200
75-
// CHECK-NEXT: Size: 24
76-
// CHECK-NEXT: Link: 3
77-
// CHECK-NEXT: Info: 1
78-
// CHECK-NEXT: AddressAlignment: 8
79-
// CHECK-NEXT: EntrySize: 24
80-
// CHECK-NEXT: SectionData (
81-
// CHECK-NEXT: 0000: 00000000 00000000 00000000 00000000 |................|
82-
// CHECK-NEXT: 0010: 00000000 00000000 |........|
83-
// CHECK-NEXT: )
84-
// CHECK-NEXT: }
85-
// CHECK-NEXT: Section {
86-
// CHECK-NEXT: Index: 2
87-
// CHECK-NEXT: Name: .hash (9)
88-
// CHECK-NEXT: Type: SHT_HASH (0x5)
89-
// CHECK-NEXT: Flags [ (0x2)
90-
// CHECK-NEXT: SHF_ALLOC (0x2)
91-
// CHECK-NEXT: ]
92-
// CHECK-NEXT: Address: 0x218
93-
// CHECK-NEXT: Offset: 0x218
94-
// CHECK-NEXT: Size: 16
95-
// CHECK-NEXT: Link: 1
96-
// CHECK-NEXT: Info: 0
97-
// CHECK-NEXT: AddressAlignment: 4
98-
// CHECK-NEXT: EntrySize: 4
99-
// CHECK-NEXT: SectionData (
100-
// LE-NEXT: 0000: 01000000 01000000 00000000 00000000
101-
// BE-NEXT: 0000: 00000001 00000001 00000000 00000000
102-
// CHECK-NEXT: )
103-
// CHECK-NEXT: }
104-
// CHECK-NEXT: Section {
105-
// CHECK-NEXT: Index: 3
106-
// CHECK-NEXT: Name: .dynstr (15)
107-
// CHECK-NEXT: Type: SHT_STRTAB (0x3)
108-
// CHECK-NEXT: Flags [ (0x2)
109-
// CHECK-NEXT: SHF_ALLOC (0x2)
110-
// CHECK-NEXT: ]
111-
// CHECK-NEXT: Address: 0x228
112-
// CHECK-NEXT: Offset: 0x228
113-
// CHECK-NEXT: Size: 1
114-
// CHECK-NEXT: Link: 0
115-
// CHECK-NEXT: Info: 0
116-
// CHECK-NEXT: AddressAlignment: 1
117-
// CHECK-NEXT: EntrySize: 0
118-
// CHECK-NEXT: SectionData (
119-
// CHECK-NEXT: 0000: 00 |.|
120-
// CHECK-NEXT: )
121-
// CHECK-NEXT: }
122-
// CHECK-NEXT: Section {
123-
// CHECK-NEXT: Index: 4
124-
// CHECK-NEXT: Name: .text (23)
125-
// CHECK-NEXT: Type: SHT_PROGBITS (0x1)
126-
// CHECK-NEXT: Flags [ (0x6)
127-
// CHECK-NEXT: SHF_ALLOC (0x2)
128-
// CHECK-NEXT: SHF_EXECINSTR (0x4)
129-
// CHECK-NEXT: ]
130-
// CHECK-NEXT: Address: 0x1022C
131-
// CHECK-NEXT: Offset: 0x22C
132-
// CHECK-NEXT: Size: 12
133-
// CHECK-NEXT: Link: 0
134-
// CHECK-NEXT: Info: 0
135-
// CHECK-NEXT: AddressAlignment: 4
136-
// CHECK-NEXT: EntrySize: 0
137-
// CHECK-NEXT: SectionData (
138-
// LE-NEXT: 0000: 01000038 37006038 02000044
139-
// BE-NEXT: 0000: 38000001 38600037 44000002
140-
// CHECK-NEXT: )
141-
// CHECK-NEXT: }
142-
// CHECK-NEXT: Section {
143-
// CHECK-NEXT: Index: 5
144-
// CHECK-NEXT: Name: .dynamic (29)
145-
// CHECK-NEXT: Type: SHT_DYNAMIC (0x6)
146-
// CHECK-NEXT: Flags [ (0x3)
147-
// CHECK-NEXT: SHF_ALLOC (0x2)
148-
// CHECK-NEXT: SHF_WRITE (0x1)
149-
// CHECK-NEXT: ]
150-
// CHECK-NEXT: Address: 0x20238
151-
// CHECK-NEXT: Offset: 0x238
152-
// CHECK-NEXT: Size: 112
153-
// CHECK-NEXT: Link: 3
154-
// CHECK-NEXT: Info: 0
155-
// CHECK-NEXT: AddressAlignment: 8
156-
// CHECK-NEXT: EntrySize: 16
157-
// CHECK-NEXT: SectionData (
158-
// LE-NEXT: 0000: 06000000 00000000 00020000 00000000 |
159-
// LE-NEXT: 0010: 0B000000 00000000 18000000 00000000 |
160-
// LE-NEXT: 0020: 05000000 00000000 28020000 00000000 |
161-
// LE-NEXT: 0030: 0A000000 00000000 01000000 00000000 |
162-
// LE-NEXT: 0040: 04000000 00000000 18020000 00000000 |
163-
// LE-NEXT: 0050: 03000070 00000000 00000000 00000000 |
164-
// LE-NEXT: 0060: 00000000 00000000 00000000 00000000 |
165-
// BE-NEXT: 0000: 00000000 00000006 00000000 00000200 |
166-
// BE-NEXT: 0010: 00000000 0000000B 00000000 00000018 |
167-
// BE-NEXT: 0020: 00000000 00000005 00000000 00000228 |
168-
// BE-NEXT: 0030: 00000000 0000000A 00000000 00000001 |
169-
// BE-NEXT: 0040: 00000000 00000004 00000000 00000218 |
170-
// BE-NEXT: 0050: 00000000 70000003 00000000 00000000 |
171-
// BE-NEXT: 0060: 00000000 00000000 00000000 00000000 |
172-
// CHECK-NEXT: )
173-
// CHECK-NEXT: }
174-
// CHECK-NEXT: Section {
175-
// CHECK-NEXT: Index: 6
176-
// CHECK-NEXT: Name: .branch_lt (38)
177-
// CHECK-NEXT: Type: SHT_NOBITS (0x8)
178-
// CHECK-NEXT: Flags [ (0x3)
179-
// CHECK-NEXT: SHF_ALLOC (0x2)
180-
// CHECK-NEXT: SHF_WRITE (0x1)
181-
// CHECK-NEXT: ]
182-
// CHECK-NEXT: Address: 0x302A8
183-
// CHECK-NEXT: Offset: 0x2A8
184-
// CHECK-NEXT: Size: 0
185-
// CHECK-NEXT: Link: 0
186-
// CHECK-NEXT: Info: 0
187-
// CHECK-NEXT: AddressAlignment: 8
188-
// CHECK-NEXT: EntrySize: 0
189-
// CHECK-NEXT: }
190-
// CHECK-NEXT: Section {
191-
// CHECK-NEXT: Index: 7
192-
// CHECK-NEXT: Name: .comment (49)
193-
// CHECK-NEXT: Type: SHT_PROGBITS (0x1)
194-
// CHECK-NEXT: Flags [ (0x30)
195-
// CHECK-NEXT: SHF_MERGE (0x10)
196-
// CHECK-NEXT: SHF_STRINGS (0x20)
197-
// CHECK-NEXT: ]
198-
// CHECK-NEXT: Address: 0x0
199-
// CHECK-NEXT: Offset: 0x2A8
200-
// CHECK-NEXT: Size: 8
201-
// CHECK-NEXT: Link: 0
202-
// CHECK-NEXT: Info: 0
203-
// CHECK-NEXT: AddressAlignment: 1
204-
// CHECK-NEXT: EntrySize: 1
205-
// CHECK-NEXT: SectionData (
206-
// CHECK-NEXT: 0000: 4C4C4420 312E3000 |LLD 1.0.|
207-
// CHECK-NEXT: )
208-
// CHECK-NEXT: }
209-
// CHECK-NEXT: Section {
210-
// CHECK-NEXT: Index: 8
211-
// CHECK-NEXT: Name: .symtab (58)
212-
// CHECK-NEXT: Type: SHT_SYMTAB (0x2)
213-
// CHECK-NEXT: Flags [ (0x0)
214-
// CHECK-NEXT: ]
215-
// CHECK-NEXT: Address: 0x0
216-
// CHECK-NEXT: Offset: 0x2B0
217-
// CHECK-NEXT: Size: 48
218-
// CHECK-NEXT: Link: 10
219-
// CHECK-NEXT: Info: 2
220-
// CHECK-NEXT: AddressAlignment: 8
221-
// CHECK-NEXT: EntrySize: 24
222-
// CHECK-NEXT: SectionData (
223-
// LE-NEXT: 0000: 00000000 00000000 00000000 00000000
224-
// LE-NEXT: 0010: 00000000 00000000 01000000 00020500
225-
// LE-NEXT: 0020: 38020200 00000000 00000000 00000000
226-
// BE-NEXT: 0000: 00000000 00000000 00000000 00000000
227-
// BE-NEXT: 0010: 00000000 00000000 00000001 00020005
228-
// BE-NEXT: 0020: 00000000 00020238 00000000 00000000
229-
// CHECK-NEXT: )
230-
// CHECK-NEXT: }
231-
// CHECK-NEXT: Section {
232-
// CHECK-NEXT: Index: 9
233-
// CHECK-NEXT: Name: .shstrtab (66)
234-
// CHECK-NEXT: Type: SHT_STRTAB (0x3)
235-
// CHECK-NEXT: Flags [ (0x0)
236-
// CHECK-NEXT: ]
237-
// CHECK-NEXT: Address: 0x0
238-
// CHECK-NEXT: Offset: 0x2E0
239-
// CHECK-NEXT: Size: 84
240-
// CHECK-NEXT: Link: 0
241-
// CHECK-NEXT: Info: 0
242-
// CHECK-NEXT: AddressAlignment: 1
243-
// CHECK-NEXT: EntrySize: 0
244-
// CHECK-NEXT: SectionData (
245-
// CHECK-NEXT: 0000: 002E6479 6E73796D 002E6861 7368002E |..dynsym..hash..|
246-
// CHECK-NEXT: 0010: 64796E73 7472002E 74657874 002E6479 |dynstr..text..dy|
247-
// CHECK-NEXT: 0020: 6E616D69 63002E62 72616E63 685F6C74 |namic..branch_lt|
248-
// CHECK-NEXT: 0030: 002E636F 6D6D656E 74002E73 796D7461 |..comment..symta|
249-
// CHECK-NEXT: 0040: 62002E73 68737472 74616200 2E737472 |b..shstrtab..str|
250-
// CHECK-NEXT: 0050: 74616200 |tab.|
251-
// CHECK-NEXT: )
252-
// CHECK-NEXT: }
253-
// CHECK-NEXT: Section {
254-
// CHECK-NEXT: Index: 10
255-
// CHECK-NEXT: Name: .strtab (76)
256-
// CHECK-NEXT: Type: SHT_STRTAB (0x3)
257-
// CHECK-NEXT: Flags [ (0x0)
258-
// CHECK-NEXT: ]
259-
// CHECK-NEXT: Address: 0x0
260-
// CHECK-NEXT: Offset: 0x334
261-
// CHECK-NEXT: Size: 10
262-
// CHECK-NEXT: Link: 0
263-
// CHECK-NEXT: Info: 0
264-
// CHECK-NEXT: AddressAlignment: 1
265-
// CHECK-NEXT: EntrySize: 0
266-
// CHECK-NEXT: SectionData (
267-
// CHECK-NEXT: 0000: 005F4459 4E414D49 4300 |._DYNAMIC.|
268-
// CHECK-NEXT: )
269-
// CHECK-NEXT: }
270-
// CHECK-NEXT:]
271-
// CHECK-NEXT:ProgramHeaders [
272-
// CHECK-NEXT: ProgramHeader {
273-
// CHECK-NEXT: Type: PT_PHDR (0x6)
274-
// CHECK-NEXT: Offset: 0x40
275-
// CHECK-NEXT: VirtualAddress: 0x40
276-
// CHECK-NEXT: PhysicalAddress: 0x40
277-
// CHECK-NEXT: FileSize: 448
278-
// CHECK-NEXT: MemSize: 448
279-
// CHECK-NEXT: Flags [ (0x4)
280-
// CHECK-NEXT: PF_R (0x4)
281-
// CHECK-NEXT: ]
282-
// CHECK-NEXT: Alignment: 8
283-
// CHECK-NEXT: }
284-
// CHECK-NEXT: ProgramHeader {
285-
// CHECK-NEXT: Type: PT_LOAD (0x1)
286-
// CHECK-NEXT: Offset: 0x0
287-
// CHECK-NEXT: VirtualAddress: 0x0
288-
// CHECK-NEXT: PhysicalAddress: 0x0
289-
// CHECK-NEXT: FileSize: 553
290-
// CHECK-NEXT: MemSize: 553
291-
// CHECK-NEXT: Flags [ (0x4)
292-
// CHECK-NEXT: PF_R (0x4)
293-
// CHECK-NEXT: ]
294-
// CHECK-NEXT: Alignment: 65536
295-
// CHECK-NEXT: }
296-
// CHECK-NEXT: ProgramHeader {
297-
// CHECK-NEXT: Type: PT_LOAD (0x1)
298-
// CHECK-NEXT: Offset: 0x22C
299-
// CHECK-NEXT: VirtualAddress: 0x1022C
300-
// CHECK-NEXT: PhysicalAddress: 0x1022C
301-
// CHECK-NEXT: FileSize: 12
302-
// CHECK-NEXT: MemSize: 12
303-
// CHECK-NEXT: Flags [ (0x5)
304-
// CHECK-NEXT: PF_R (0x4)
305-
// CHECK-NEXT: PF_X (0x1)
306-
// CHECK-NEXT: ]
307-
// CHECK-NEXT: Alignment: 65536
308-
// CHECK-NEXT: }
309-
// CHECK-NEXT: ProgramHeader {
310-
// CHECK-NEXT: Type: PT_LOAD (0x1)
311-
// CHECK-NEXT: Offset: 0x238
312-
// CHECK-NEXT: VirtualAddress: 0x20238
313-
// CHECK-NEXT: PhysicalAddress: 0x20238
314-
// CHECK-NEXT: FileSize: 112
315-
// CHECK-NEXT: MemSize: 112
316-
// CHECK-NEXT: Flags [ (0x6)
317-
// CHECK-NEXT: PF_R (0x4)
318-
// CHECK-NEXT: PF_W (0x2)
319-
// CHECK-NEXT: ]
320-
// CHECK-NEXT: Alignment: 65536
321-
// CHECK-NEXT: }
322-
// CHECK-NEXT: ProgramHeader {
323-
// CHECK-NEXT: Type: PT_DYNAMIC (0x2)
324-
// CHECK-NEXT: Offset: 0x238
325-
// CHECK-NEXT: VirtualAddress: 0x20238
326-
// CHECK-NEXT: PhysicalAddress: 0x20238
327-
// CHECK-NEXT: FileSize: 112
328-
// CHECK-NEXT: MemSize: 112
329-
// CHECK-NEXT: Flags [ (0x6)
330-
// CHECK-NEXT: PF_R (0x4)
331-
// CHECK-NEXT: PF_W (0x2)
332-
// CHECK-NEXT: ]
333-
// CHECK-NEXT: Alignment: 8
334-
// CHECK-NEXT: }
335-
// CHECK-NEXT: ProgramHeader {
336-
// CHECK-NEXT: Type: PT_GNU_RELRO (0x6474E552)
337-
// CHECK-NEXT: Offset: 0x238
338-
// CHECK-NEXT: VirtualAddress: 0x20238
339-
// CHECK-NEXT: PhysicalAddress: 0x20238
340-
// CHECK-NEXT: FileSize: 112
341-
// CHECK-NEXT: MemSize: 3528
342-
// CHECK-NEXT: Flags [ (0x4)
343-
// CHECK-NEXT: PF_R (0x4)
344-
// CHECK-NEXT: ]
345-
// CHECK-NEXT: Alignment: 1
346-
// CHECK-NEXT: }
347-
// CHECK-NEXT: ProgramHeader {
348-
// CHECK-NEXT: Type: PT_GNU_STACK (0x6474E551)
349-
// CHECK-NEXT: Offset: 0x0
350-
// CHECK-NEXT: VirtualAddress: 0x0
351-
// CHECK-NEXT: PhysicalAddress: 0x0
352-
// CHECK-NEXT: FileSize: 0
353-
// CHECK-NEXT: MemSize: 0
354-
// CHECK-NEXT: Flags [ (0x6)
355-
// CHECK-NEXT: PF_R (0x4)
356-
// CHECK-NEXT: PF_W (0x2)
357-
// CHECK-NEXT: ]
358-
// CHECK-NEXT: Alignment: 0
359-
// CHECK-NEXT: }
360-
// CHECK-NEXT:]
29+

lld/test/ELF/dynamic-reloc.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
// CHECK-NEXT: Offset:
2020
// CHECK-NEXT: Size: [[RELASIZE:.*]]
2121
// CHECK-NEXT: Link: 1
22-
// CHECK-NEXT: Info: 9
22+
// CHECK-NEXT: Info:
2323
// CHECK-NEXT: AddressAlignment: 8
2424
// CHECK-NEXT: EntrySize: 24
2525

0 commit comments

Comments
 (0)