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 PAddr: 0x1000 35 Sections: 36 - Section: .text 37 - Type: PT_LOAD 38 Flags: [ PF_X, PF_R ] 39 VAddr: 0x3000 40 PAddr: 0x3000 41 Sections: 42 - Section: .text3 43 44# CHECK: ProgramHeaders [ 45# CHECK-NEXT: ProgramHeader { 46# CHECK-NEXT: Type: PT_LOAD (0x1) 47# CHECK-NEXT: Offset: 0x1000 48# CHECK-NEXT: VirtualAddress: 0x1000 49# CHECK-NEXT: PhysicalAddress: 0x1000 50# CHECK-NEXT: FileSize: 4096 51# CHECK-NEXT: MemSize: 4096 52# CHECK-NEXT: Flags [ (0x4) 53# CHECK-NEXT: PF_R (0x4) 54# CHECK-NEXT: ] 55# CHECK-NEXT: Alignment: 4096 56# CHECK-NEXT: } 57# CHECK-NEXT: ProgramHeader { 58# CHECK-NEXT: Type: PT_LOAD (0x1) 59# CHECK-NEXT: Offset: 0x2000 60# CHECK-NEXT: VirtualAddress: 0x3000 61# CHECK-NEXT: PhysicalAddress: 0x3000 62# CHECK-NEXT: FileSize: 4096 63# CHECK-NEXT: MemSize: 4096 64# CHECK-NEXT: Flags [ (0x5) 65# CHECK-NEXT: PF_R (0x4) 66# CHECK-NEXT: PF_X (0x1) 67# CHECK-NEXT: ] 68# CHECK-NEXT: Alignment: 4096 69# CHECK-NEXT: } 70# CHECK-NEXT:] 71