1 # RUN: yaml2obj %s -o %t 2 # RUN: llvm-objcopy %t %t2 3 # RUN: llvm-readobj -program-headers %t2 | FileCheck %s 4 5 !ELF 6 FileHeader: 7 Class: ELFCLASS64 8 Data: ELFDATA2LSB 9 Type: ET_EXEC 10 Machine: EM_X86_64 11 Sections: 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 30 ProgramHeaders: 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