114 lines · plain
1# This test tests how ParentSegment is set for Segments. In particular this test2# tests that if a chain of parents forms, the offsets are chosen for parents3# first despite the order of the list. It also tests multiple branches of the4# code that assigns parents.5 6# RUN: yaml2obj %s -o %t7# RUN: llvm-objcopy %t %t28# RUN: llvm-readobj --program-headers %t2 | FileCheck %s9 10!ELF11FileHeader:12 Class: ELFCLASS6413 Data: ELFDATA2LSB14 Type: ET_EXEC15 Machine: EM_X86_6416Sections:17 - Name: .text18 Type: SHT_PROGBITS19 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]20 AddressAlign: 0x100021 Size: 409622 - Name: .text223 Type: SHT_PROGBITS24 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]25 AddressAlign: 0x100026 Size: 409627 - Name: .text328 Type: SHT_PROGBITS29 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]30 AddressAlign: 0x100031 Size: 409632 - Name: .text433 Type: SHT_PROGBITS34 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]35 AddressAlign: 0x100036 Size: 409637 - Name: .text538 Type: SHT_PROGBITS39 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]40 AddressAlign: 0x100041 Size: 409642ProgramHeaders:43 - Type: PT_LOAD44 Flags: [ PF_X, PF_R ]45 FirstSec: .text46 LastSec: .text247 - Type: PT_LOAD48 Flags: [ PF_X, PF_R ]49 FirstSec: .text450 LastSec: .text551 - Type: PT_LOAD52 Flags: [ PF_X, PF_R ]53 FirstSec: .text354 LastSec: .text455 - Type: PT_LOAD56 Flags: [ PF_X, PF_R ]57 FirstSec: .text258 LastSec: .text359 60#CHECK: ProgramHeaders [61#CHECK-NEXT: ProgramHeader {62#CHECK-NEXT: Type: PT_LOAD (0x1)63#CHECK-NEXT: Offset: 0x100064#CHECK-NEXT: VirtualAddress: 0x065#CHECK-NEXT: PhysicalAddress: 0x066#CHECK-NEXT: FileSize: 819267#CHECK-NEXT: MemSize: 819268#CHECK-NEXT: Flags [ (0x5)69#CHECK-NEXT: PF_R (0x4)70#CHECK-NEXT: PF_X (0x1)71#CHECK-NEXT: ]72#CHECK-NEXT: Alignment: 409673#CHECK-NEXT: }74#CHECK-NEXT: ProgramHeader {75#CHECK-NEXT: Type: PT_LOAD (0x1)76#CHECK-NEXT: Offset: 0x400077#CHECK-NEXT: VirtualAddress: 0x078#CHECK-NEXT: PhysicalAddress: 0x079#CHECK-NEXT: FileSize: 819280#CHECK-NEXT: MemSize: 819281#CHECK-NEXT: Flags [ (0x5)82#CHECK-NEXT: PF_R (0x4)83#CHECK-NEXT: PF_X (0x1)84#CHECK-NEXT: ]85#CHECK-NEXT: Alignment: 409686#CHECK-NEXT: }87#CHECK-NEXT: ProgramHeader {88#CHECK-NEXT: Type: PT_LOAD (0x1)89#CHECK-NEXT: Offset: 0x300090#CHECK-NEXT: VirtualAddress: 0x091#CHECK-NEXT: PhysicalAddress: 0x092#CHECK-NEXT: FileSize: 819293#CHECK-NEXT: MemSize: 819294#CHECK-NEXT: Flags [ (0x5)95#CHECK-NEXT: PF_R (0x4)96#CHECK-NEXT: PF_X (0x1)97#CHECK-NEXT: ]98#CHECK-NEXT: Alignment: 409699#CHECK-NEXT: }100#CHECK-NEXT: ProgramHeader {101#CHECK-NEXT: Type: PT_LOAD (0x1)102#CHECK-NEXT: Offset: 0x2000103#CHECK-NEXT: VirtualAddress: 0x0104#CHECK-NEXT: PhysicalAddress: 0x0105#CHECK-NEXT: FileSize: 8192106#CHECK-NEXT: MemSize: 8192107#CHECK-NEXT: Flags [ (0x5)108#CHECK-NEXT: PF_R (0x4)109#CHECK-NEXT: PF_X (0x1)110#CHECK-NEXT: ]111#CHECK-NEXT: Alignment: 4096112#CHECK-NEXT: }113#CHECK-NEXT:]114