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: 0xAAAA1000 16 AddressAlign: 0x0000000000001000 17 Content: "00000000" 18 - Name: .init 19 Type: SHT_PROGBITS 20 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 21 Content: "00000000" 22 Address: 0xAAAA1010 23 AddressAlign: 0x0000000000000010 24 - Name: .data 25 Type: SHT_PROGBITS 26 Flags: [ SHF_ALLOC ] 27 Content: "00000000" 28 Address: 0xAAAA2000 29 AddressAlign: 0x0000000000001000 30 ProgramHeaders: 31 - Type: PT_LOAD 32 Flags: [ PF_X, PF_R ] 33 VAddr: 0xAAAA1000 34 PAddr: 0xFFFF1000 35 Sections: 36 - Section: .text 37 - Section: .init 38 - Type: PT_LOAD 39 Flags: [ PF_R ] 40 VAddr: 0xAAAA2000 41 PAddr: 0xFFFF2000 42 Sections: 43 - Section: .data 44 45 #CHECK: ProgramHeaders [ 46 #CHECK-NEXT: ProgramHeader { 47 #CHECK-NEXT: Type: PT_LOAD 48 #CHECK-NEXT: Offset: 0x1000 49 #CHECK-NEXT: VirtualAddress: 0xAAAA1000 50 #CHECK-NEXT: PhysicalAddress: 0xFFFF1000 51 #CHECK-NEXT: FileSize: 20 52 #CHECK-NEXT: MemSize: 20 53 #CHECK-NEXT: Flags [ 54 #CHECK-NEXT: PF_R 55 #CHECK-NEXT: PF_X 56 #CHECK-NEXT: ] 57 #CHECK-NEXT: Alignment: 4096 58 #CHECK-NEXT: } 59 #CHECK-NEXT: ProgramHeader { 60 #CHECK-NEXT: Type: PT_LOAD 61 #CHECK-NEXT: Offset: 0x2000 62 #CHECK-NEXT: VirtualAddress: 0xAAAA2000 63 #CHECK-NEXT: PhysicalAddress: 0xFFFF2000 64 #CHECK-NEXT: FileSize: 4 65 #CHECK-NEXT: MemSize: 4 66 #CHECK-NEXT: Flags [ 67 #CHECK-NEXT: PF_R 68 #CHECK-NEXT: ] 69 #CHECK-NEXT: Alignment: 4096 70 #CHECK-NEXT: } 71 #CHECK-NEXT:] 72