138 lines · plain
1# RUN: yaml2obj %s -o %t2# RUN: llvm-objcopy -R .text2 %t %t23# RUN: llvm-readobj --file-headers --sections --program-headers %t2 | FileCheck %s4 5!ELF6FileHeader:7 Class: ELFCLASS648 Data: ELFDATA2LSB9 Type: ET_EXEC10 Machine: EM_X86_6411Sections:12 - Name: .text13 Type: SHT_PROGBITS14 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]15 Address: 0x100016 AddressAlign: 0x100017 Size: 0x100018 - Name: .text219 Type: SHT_PROGBITS20 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]21 Address: 0x200022 AddressAlign: 0x100023 Size: 0x100024 - Name: .text325 Type: SHT_PROGBITS26 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]27 Address: 0x300028 AddressAlign: 0x100029 Size: 0x100030ProgramHeaders:31 - Type: PT_LOAD32 Flags: [ PF_R ]33 VAddr: 0x100034 FirstSec: .text35 LastSec: .text36 - Type: PT_LOAD37 Flags: [ PF_X, PF_R ]38 VAddr: 0x300039 FirstSec: .text340 LastSec: .text341## TODO (grimar): without the following line (i.e. without an empty symbol table),42## llvm-objcopy adds an empty .strtab section. It doesn't look correct.43Symbols: []44 45#CHECK: SectionHeaderCount: 446 47# CHECK: Sections [48# CHECK-NEXT: Section {49# CHECK-NEXT: Index: 050# CHECK-NEXT: Name: (0)51# CHECK-NEXT: Type: SHT_NULL (0x0)52# CHECK-NEXT: Flags [ (0x0)53# CHECK-NEXT: ]54# CHECK-NEXT: Address: 0x055# CHECK-NEXT: Offset: 0x056# CHECK-NEXT: Size: 057# CHECK-NEXT: Link: 058# CHECK-NEXT: Info: 059# CHECK-NEXT: AddressAlignment: 060# CHECK-NEXT: EntrySize: 061# CHECK-NEXT: }62# CHECK-NEXT: Section {63# CHECK-NEXT: Index: 164# CHECK-NEXT: Name: .text65# CHECK-NEXT: Type: SHT_PROGBITS (0x1)66# CHECK-NEXT: Flags [ (0x6)67# CHECK-NEXT: SHF_ALLOC (0x2)68# CHECK-NEXT: SHF_EXECINSTR (0x4)69# CHECK-NEXT: ]70# CHECK-NEXT: Address: 0x100071# CHECK-NEXT: Offset: 0x100072# CHECK-NEXT: Size: 409673# CHECK-NEXT: Link: 074# CHECK-NEXT: Info: 075# CHECK-NEXT: AddressAlignment: 409676# CHECK-NEXT: EntrySize: 077# CHECK-NEXT: }78# CHECK-NEXT: Section {79# CHECK-NEXT: Index: 280# CHECK-NEXT: Name: .text381# CHECK-NEXT: Type: SHT_PROGBITS (0x1)82# CHECK-NEXT: Flags [ (0x6)83# CHECK-NEXT: SHF_ALLOC (0x2)84# CHECK-NEXT: SHF_EXECINSTR (0x4)85# CHECK-NEXT: ]86# CHECK-NEXT: Address: 0x300087# CHECK-NEXT: Offset: 0x200088# CHECK-NEXT: Size: 409689# CHECK-NEXT: Link: 090# CHECK-NEXT: Info: 091# CHECK-NEXT: AddressAlignment: 409692# CHECK-NEXT: EntrySize: 093# CHECK-NEXT: }94# CHECK-NEXT: Section {95# CHECK-NEXT: Index: 396# CHECK-NEXT: Name: .shstrtab97# CHECK-NEXT: Type: SHT_STRTAB (0x3)98# CHECK-NEXT: Flags [ (0x0)99# CHECK-NEXT: ]100# CHECK-NEXT: Address: 0x0101# CHECK-NEXT: Offset:102# CHECK-NEXT: Size:103# CHECK-NEXT: Link: 0104# CHECK-NEXT: Info: 0105# CHECK-NEXT: AddressAlignment: 1106# CHECK-NEXT: EntrySize: 0107# CHECK-NEXT: }108# CHECK-NEXT: ]109 110 111# CHECK: ProgramHeaders [112# CHECK-NEXT: ProgramHeader {113# CHECK-NEXT: Type: PT_LOAD (0x1)114# CHECK-NEXT: Offset: 0x1000115# CHECK-NEXT: VirtualAddress: 0x1000116# CHECK-NEXT: PhysicalAddress: 0x1000117# CHECK-NEXT: FileSize: 4096118# CHECK-NEXT: MemSize: 4096119# CHECK-NEXT: Flags [ (0x4)120# CHECK-NEXT: PF_R (0x4)121# CHECK-NEXT: ]122# CHECK-NEXT: Alignment: 4096123# CHECK-NEXT: }124# CHECK-NEXT: ProgramHeader {125# CHECK-NEXT: Type: PT_LOAD (0x1)126# CHECK-NEXT: Offset: 0x2000127# CHECK-NEXT: VirtualAddress: 0x3000128# CHECK-NEXT: PhysicalAddress: 0x3000129# CHECK-NEXT: FileSize: 4096130# CHECK-NEXT: MemSize: 4096131# CHECK-NEXT: Flags [ (0x5)132# CHECK-NEXT: PF_R (0x4)133# CHECK-NEXT: PF_X (0x1)134# CHECK-NEXT: ]135# CHECK-NEXT: Alignment: 4096136# CHECK-NEXT: }137# CHECK-NEXT:]138