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