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: ELFCLASS32 8 Data: ELFDATA2LSB 9 Type: ET_EXEC 10 Machine: EM_ARM 11Sections: 12 - Name: .text 13 Type: SHT_PROGBITS 14 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 15 Address: 0x1000 16 AddressAlign: 0x0000000000001000 17 Content: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" 18 - Name: .data 19 Type: SHT_PROGBITS 20 Flags: [ SHF_ALLOC ] 21 Address: 0x2000 22 AddressAlign: 0x0000000000001000 23 Content: "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" 24 - Name: .xdata 25 Type: SHT_PROGBITS 26 Flags: [ SHF_ALLOC ] 27 - Name: .after 28 Type: SHT_NOBITS 29 Flags: [ SHF_ALLOC ] 30 Size: 64 31ProgramHeaders: 32 - Type: PT_LOAD 33 Flags: [ PF_X, PF_R ] 34 VAddr: 0x1000 35 Align: 0x1000 36 FirstSec: .text 37 LastSec: .text 38 - Type: PT_LOAD 39 Flags: [ PF_R, PF_W ] 40 VAddr: 0x2000 41 Align: 0x1000 42 FirstSec: .data 43 LastSec: .data 44 - Type: PT_GNU_STACK 45 Flags: [ PF_R, PF_W ] 46 VAddr: 0x0000 47 Align: 0x0000 48 - Type: PT_LOAD 49 Flags: [ PF_R ] 50 VAddr: 0x2010 51 FirstSec: .xdata 52 LastSec: .after 53 54#CHECK: ProgramHeaders [ 55#CHECK-NEXT: ProgramHeader { 56#CHECK-NEXT: Type: PT_LOAD 57#CHECK-NEXT: Offset: 0x1000 58#CHECK-NEXT: VirtualAddress: 0x1000 59#CHECK-NEXT: PhysicalAddress: 0x1000 60#CHECK-NEXT: FileSize: 16 61#CHECK-NEXT: MemSize: 16 62#CHECK-NEXT: Flags [ 63#CHECK-NEXT: PF_R 64#CHECK-NEXT: PF_X 65#CHECK-NEXT: ] 66#CHECK-NEXT: Alignment: 4096 67#CHECK-NEXT: } 68#CHECK-NEXT: ProgramHeader { 69#CHECK-NEXT: Type: PT_LOAD 70#CHECK-NEXT: Offset: 0x2000 71#CHECK-NEXT: VirtualAddress: 0x2000 72#CHECK-NEXT: PhysicalAddress: 0x2000 73#CHECK-NEXT: FileSize: 16 74#CHECK-NEXT: MemSize: 16 75#CHECK-NEXT: Flags [ 76#CHECK-NEXT: PF_R 77#CHECK-NEXT: PF_W 78#CHECK-NEXT: ] 79#CHECK-NEXT: Alignment: 4096 80#CHECK-NEXT: } 81#CHECK-NEXT: ProgramHeader { 82#CHECK-NEXT: Type: PT_GNU_STACK 83#CHECK-NEXT: Offset: 0x0 84#CHECK-NEXT: VirtualAddress: 0x0 85#CHECK-NEXT: PhysicalAddress: 0x0 86#CHECK-NEXT: FileSize: 0 87#CHECK-NEXT: MemSize: 0 88#CHECK-NEXT: Flags [ 89#CHECK-NEXT: PF_R 90#CHECK-NEXT: PF_W 91#CHECK-NEXT: ] 92#CHECK-NEXT: Alignment: 0 93#CHECK-NEXT: } 94#CHECK-NEXT: ProgramHeader { 95#CHECK-NEXT: Type: PT_LOAD 96#CHECK-NEXT: Offset: 0x2010 97#CHECK-NEXT: VirtualAddress: 0x2010 98#CHECK-NEXT: PhysicalAddress: 0x2010 99#CHECK-NEXT: FileSize: 0 100#CHECK-NEXT: MemSize: 64 101#CHECK-NEXT: Flags [ 102#CHECK-NEXT: PF_R 103#CHECK-NEXT: ] 104#CHECK-NEXT: Alignment: 1 105#CHECK-NEXT: } 106#CHECK-NEXT:] 107