blob: 9c123d215470af0b72c32248df93a5e07215119b [file] [log] [blame]
Petr Hosek05a04cb2017-08-01 00:33:58 +00001# RUN: yaml2obj %s -o %t
2# RUN: llvm-objcopy %t %t2
Jordan Rupprecht298ea3f2019-01-11 18:06:31 +00003# RUN: llvm-readobj --program-headers %t2 | FileCheck %s
Petr Hosek05a04cb2017-08-01 00:33:58 +00004
5!ELF
6FileHeader:
7 Class: ELFCLASS64
8 Data: ELFDATA2LSB
9 Type: ET_EXEC
10 Machine: EM_X86_64
11Sections:
12 - Name: .text
13 Type: SHT_PROGBITS
14 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
15 Address: 0xAAAA1000
16 AddressAlign: 0x0000000000001000
17 Content: "00000000"
18 - Name: .init
19 Type: SHT_PROGBITS
20 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
21 Content: "00000000"
22 Address: 0xAAAA1010
23 AddressAlign: 0x0000000000000010
24 - Name: .data
25 Type: SHT_PROGBITS
26 Flags: [ SHF_ALLOC ]
27 Content: "00000000"
28 Address: 0xAAAA2000
29 AddressAlign: 0x0000000000001000
30ProgramHeaders:
31 - Type: PT_LOAD
32 Flags: [ PF_X, PF_R ]
33 VAddr: 0xAAAA1000
34 PAddr: 0xFFFF1000
35 Sections:
36 - Section: .text
37 - Section: .init
38 - Type: PT_LOAD
39 Flags: [ PF_R ]
40 VAddr: 0xAAAA2000
41 PAddr: 0xFFFF2000
42 Sections:
43 - Section: .data
44
45#CHECK: ProgramHeaders [
46#CHECK-NEXT: ProgramHeader {
47#CHECK-NEXT: Type: PT_LOAD
48#CHECK-NEXT: Offset: 0x1000
49#CHECK-NEXT: VirtualAddress: 0xAAAA1000
50#CHECK-NEXT: PhysicalAddress: 0xFFFF1000
51#CHECK-NEXT: FileSize: 20
52#CHECK-NEXT: MemSize: 20
53#CHECK-NEXT: Flags [
54#CHECK-NEXT: PF_R
55#CHECK-NEXT: PF_X
56#CHECK-NEXT: ]
57#CHECK-NEXT: Alignment: 4096
58#CHECK-NEXT: }
59#CHECK-NEXT: ProgramHeader {
60#CHECK-NEXT: Type: PT_LOAD
61#CHECK-NEXT: Offset: 0x2000
62#CHECK-NEXT: VirtualAddress: 0xAAAA2000
63#CHECK-NEXT: PhysicalAddress: 0xFFFF2000
64#CHECK-NEXT: FileSize: 4
65#CHECK-NEXT: MemSize: 4
66#CHECK-NEXT: Flags [
67#CHECK-NEXT: PF_R
68#CHECK-NEXT: ]
69#CHECK-NEXT: Alignment: 4096
70#CHECK-NEXT: }
71#CHECK-NEXT:]