xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/check-addr-offset-align.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:           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:         0x1000
16    AddressAlign:    0x0000000000001000
17    Content:         "c3c3c3c3"
18  - Name:            .data
19    Type:            SHT_PROGBITS
20    Flags:           [ SHF_ALLOC ]
21    Address:         0x1008
22    AddressAlign:    0x0000000000000008
23    Content:         "3232"
24ProgramHeaders:
25  - Type:     PT_LOAD
26    Flags:    [ PF_X, PF_R ]
27    VAddr:    0x1000
28    Align:    0x1000
29    FirstSec: .text
30    LastSec:  .text
31  - Type:     PT_LOAD
32    Flags:    [ PF_R, PF_W ]
33    VAddr:    0x1008
34    Align:    0x1000
35    FirstSec: .data
36    LastSec:  .data
37
38#CHECK:     ProgramHeaders [
39#CHECK-NEXT:   ProgramHeader {
40#CHECK-NEXT:    Type: PT_LOAD
41#CHECK-NEXT:    Offset: 0x1000
42#CHECK-NEXT:    VirtualAddress: 0x1000
43#CHECK-NEXT:    PhysicalAddress: 0x1000
44#CHECK-NEXT:    FileSize: 4
45#CHECK-NEXT:    MemSize: 4
46#CHECK-NEXT:    Flags [
47#CHECK-NEXT:      PF_R
48#CHECK-NEXT:      PF_X
49#CHECK-NEXT:    ]
50#CHECK-NEXT:    Alignment: 4096
51#CHECK-NEXT:  }
52#CHECK-NEXT:  ProgramHeader {
53#CHECK-NEXT:    Type: PT_LOAD
54#CHECK-NEXT:    Offset: 0x1008
55#CHECK-NEXT:    VirtualAddress: 0x1008
56#CHECK-NEXT:    PhysicalAddress: 0x1008
57#CHECK-NEXT:    FileSize: 2
58#CHECK-NEXT:    MemSize: 2
59#CHECK-NEXT:    Flags [
60#CHECK-NEXT:      PF_R
61#CHECK-NEXT:      PF_W
62#CHECK-NEXT:    ]
63#CHECK-NEXT:    Alignment: 4096
64#CHECK-NEXT:  }
65#CHECK-NEXT:]
66