xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/marker-segment.test (revision a7a447be0fa934505f0c423fb97b91a68c1cc715)
1# RUN: yaml2obj %s -o %t
2# RUN: llvm-objcopy %t %t2
3# RUN: llvm-readobj --program-headers %t2 | FileCheck %s
4
5!ELF
6FileHeader:
7  Class:           ELFCLASS32
8  Data:            ELFDATA2LSB
9  Type:            ET_EXEC
10  Machine:         EM_ARM
11Sections:
12  - Name:            .text
13    Type:            SHT_PROGBITS
14    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
15    Address:         0x1000
16    AddressAlign:    0x0000000000001000
17    Content:         "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
18  - Name:            .data
19    Type:            SHT_PROGBITS
20    Flags:           [ SHF_ALLOC ]
21    Address:         0x2000
22    AddressAlign:    0x0000000000001000
23    Content:         "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
24  - Name:            .xdata
25    Type:            SHT_PROGBITS
26    Flags:           [ SHF_ALLOC ]
27  - Name:            .after
28    Type:            SHT_NOBITS
29    Flags:           [ SHF_ALLOC ]
30    Size:            64
31ProgramHeaders:
32  - Type:     PT_LOAD
33    Flags:    [ PF_X, PF_R ]
34    VAddr:    0x1000
35    Align:    0x1000
36    FirstSec: .text
37    LastSec:  .text
38  - Type:     PT_LOAD
39    Flags:    [ PF_R, PF_W ]
40    VAddr:    0x2000
41    Align:    0x1000
42    FirstSec: .data
43    LastSec:  .data
44  - Type: PT_GNU_STACK
45    Flags: [ PF_R, PF_W ]
46    VAddr: 0x0000
47    Align: 0x0000
48  - Type:     PT_LOAD
49    Flags:    [ PF_R ]
50    VAddr:    0x2010
51    FirstSec: .xdata
52    LastSec:  .after
53
54#CHECK:     ProgramHeaders [
55#CHECK-NEXT:   ProgramHeader {
56#CHECK-NEXT:    Type: PT_LOAD
57#CHECK-NEXT:    Offset: 0x1000
58#CHECK-NEXT:    VirtualAddress: 0x1000
59#CHECK-NEXT:    PhysicalAddress: 0x1000
60#CHECK-NEXT:    FileSize: 16
61#CHECK-NEXT:    MemSize: 16
62#CHECK-NEXT:    Flags [
63#CHECK-NEXT:      PF_R
64#CHECK-NEXT:      PF_X
65#CHECK-NEXT:    ]
66#CHECK-NEXT:    Alignment: 4096
67#CHECK-NEXT:  }
68#CHECK-NEXT:  ProgramHeader {
69#CHECK-NEXT:    Type: PT_LOAD
70#CHECK-NEXT:    Offset: 0x2000
71#CHECK-NEXT:    VirtualAddress: 0x2000
72#CHECK-NEXT:    PhysicalAddress: 0x2000
73#CHECK-NEXT:    FileSize: 16
74#CHECK-NEXT:    MemSize: 16
75#CHECK-NEXT:    Flags [
76#CHECK-NEXT:      PF_R
77#CHECK-NEXT:      PF_W
78#CHECK-NEXT:    ]
79#CHECK-NEXT:    Alignment: 4096
80#CHECK-NEXT:  }
81#CHECK-NEXT:  ProgramHeader {
82#CHECK-NEXT:    Type: PT_GNU_STACK
83#CHECK-NEXT:    Offset: 0x0
84#CHECK-NEXT:    VirtualAddress: 0x0
85#CHECK-NEXT:    PhysicalAddress: 0x0
86#CHECK-NEXT:    FileSize: 0
87#CHECK-NEXT:    MemSize: 0
88#CHECK-NEXT:    Flags [
89#CHECK-NEXT:      PF_R
90#CHECK-NEXT:      PF_W
91#CHECK-NEXT:    ]
92#CHECK-NEXT:    Alignment: 0
93#CHECK-NEXT:  }
94#CHECK-NEXT:  ProgramHeader {
95#CHECK-NEXT:    Type: PT_LOAD
96#CHECK-NEXT:    Offset: 0x2010
97#CHECK-NEXT:    VirtualAddress: 0x2010
98#CHECK-NEXT:    PhysicalAddress: 0x2010
99#CHECK-NEXT:    FileSize: 0
100#CHECK-NEXT:    MemSize: 64
101#CHECK-NEXT:    Flags [
102#CHECK-NEXT:      PF_R
103#CHECK-NEXT:    ]
104#CHECK-NEXT:    Alignment: 1
105#CHECK-NEXT:  }
106#CHECK-NEXT:]
107