xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/segment-shift.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:    0x1000
17    Size:            0x1000
18  - Name:            .text2
19    Type:            SHT_PROGBITS
20    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
21    Address:         0x2000
22    AddressAlign:    0x1000
23    Size:            0x1000
24  - Name:            .text3
25    Type:            SHT_PROGBITS
26    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
27    Address:         0x3000
28    AddressAlign:    0x1000
29    Size:            0x1000
30ProgramHeaders:
31  - Type:     PT_LOAD
32    Flags:    [ PF_R ]
33    VAddr:    0x1000
34    FirstSec: .text
35    LastSec:  .text
36  - Type:     PT_LOAD
37    Flags:    [ PF_X, PF_R ]
38    VAddr:    0x3000
39    FirstSec: .text3
40    LastSec:  .text3
41
42# CHECK:     ProgramHeaders [
43# CHECK-NEXT:  ProgramHeader {
44# CHECK-NEXT:    Type: PT_LOAD (0x1)
45# CHECK-NEXT:    Offset: 0x1000
46# CHECK-NEXT:    VirtualAddress: 0x1000
47# CHECK-NEXT:    PhysicalAddress: 0x1000
48# CHECK-NEXT:    FileSize: 4096
49# CHECK-NEXT:    MemSize: 4096
50# CHECK-NEXT:    Flags [ (0x4)
51# CHECK-NEXT:      PF_R (0x4)
52# CHECK-NEXT:    ]
53# CHECK-NEXT:    Alignment: 4096
54# CHECK-NEXT:  }
55# CHECK-NEXT:  ProgramHeader {
56# CHECK-NEXT:    Type: PT_LOAD (0x1)
57# CHECK-NEXT:    Offset: 0x2000
58# CHECK-NEXT:    VirtualAddress: 0x3000
59# CHECK-NEXT:    PhysicalAddress: 0x3000
60# CHECK-NEXT:    FileSize: 4096
61# CHECK-NEXT:    MemSize: 4096
62# CHECK-NEXT:    Flags [ (0x5)
63# CHECK-NEXT:      PF_R (0x4)
64# CHECK-NEXT:      PF_X (0x1)
65# CHECK-NEXT:    ]
66# CHECK-NEXT:    Alignment: 4096
67# CHECK-NEXT:  }
68# CHECK-NEXT:]
69