114 lines · plain
1# This test tests that each segment is assigned a canonical parent segment.2# Importantly if two segments could be the parent segment of a segment this test3# should cover the case where a new parent replaces the old parent and the case4# where an old parent is not replaced by a new parent.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: .text446 LastSec: .text547 - Type: PT_LOAD48 Flags: [ PF_X, PF_R ]49 FirstSec: .text350 LastSec: .text551 - Type: PT_LOAD52 Flags: [ PF_X, PF_R ]53 FirstSec: .text54 LastSec: .text555 - Type: PT_LOAD56 Flags: [ PF_X, PF_R ]57 FirstSec: .text258 LastSec: .text559 60#CHECK: ProgramHeaders [61#CHECK-NEXT: ProgramHeader {62#CHECK-NEXT: Type: PT_LOAD (0x1)63#CHECK-NEXT: Offset: 0x400064#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: 0x300077#CHECK-NEXT: VirtualAddress: 0x078#CHECK-NEXT: PhysicalAddress: 0x079#CHECK-NEXT: FileSize: 1228880#CHECK-NEXT: MemSize: 1228881#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: 0x100090#CHECK-NEXT: VirtualAddress: 0x091#CHECK-NEXT: PhysicalAddress: 0x092#CHECK-NEXT: FileSize: 2048093#CHECK-NEXT: MemSize: 2048094#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: 16384106#CHECK-NEXT: MemSize: 16384107#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