brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · ce310af Raw
130 lines · plain
1# This test is checking to ensure that if a section is removed in the presence2# of a segment that the segment maintains its shape and properties and that any3# section inside that segment maintains the relative positioning it had in the4# segment. Note worthy is that .text3 keeps its offset despite it being5# possible to place it after .text when .text2 is removed.6 7# RUN: yaml2obj %s -o %t8# RUN: llvm-objcopy -R .text2 %t %t29# RUN: llvm-readobj --file-headers --program-headers --sections %t2 | FileCheck %s10# RUN: od -t x1 -j 8192 -N 4 %t2 | FileCheck %s --check-prefix=DATA11 12!ELF13FileHeader:14  Class:           ELFCLASS6415  Data:            ELFDATA2LSB16  Type:            ET_EXEC17  Machine:         EM_X86_6418Sections:19  - Name:            .text20    Type:            SHT_PROGBITS21    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]22    Address:         0x100023    AddressAlign:    0x100024    Size:            409625  - Name:            .text226    Type:            SHT_PROGBITS27    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]28    Address:         0x200029    AddressAlign:    0x100030    Size:            409631    Content:         "DEADBEEF"32  - Name:            .text333    Type:            SHT_PROGBITS34    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]35    Address:         0x300036    AddressAlign:    0x100037    Size:            409638ProgramHeaders:39  - Type:     PT_LOAD40    Flags:    [ PF_X, PF_R ]41    FirstSec: .text42    LastSec:  .text343## TODO (grimar): without the following line (i.e. without an empty symbol table),44## llvm-objcopy adds an empty .strtab section. It doesn't look correct.45Symbols: []46 47# Make sure that when we remove a section we overwrite it with zeros48# DATA: {{^[^[:blank:]]+}} 00 00 00 0049 50#CHECK: SectionHeaderCount: 451 52# CHECK: Sections [53# CHECK:   Section {54# CHECK-NEXT:     Index: 055# CHECK-NEXT:     Name:  (0)56# CHECK-NEXT:     Type: SHT_NULL (0x0)57# CHECK-NEXT:     Flags [ (0x0)58# CHECK-NEXT:     ]59# CHECK-NEXT:     Address: 0x060# CHECK-NEXT:     Offset:61# CHECK-NEXT:     Size:62# CHECK-NEXT:     Link: 063# CHECK-NEXT:     Info: 064# CHECK-NEXT:     AddressAlignment: 065# CHECK-NEXT:     EntrySize: 066# CHECK-NEXT:   }67# CHECK-NEXT:   Section {68# CHECK-NEXT:     Index: 169# CHECK-NEXT:     Name: .text70# CHECK-NEXT:     Type: SHT_PROGBITS71# CHECK-NEXT:     Flags [72# CHECK-NEXT:       SHF_ALLOC73# CHECK-NEXT:       SHF_EXECINSTR74# CHECK-NEXT:     ]75# CHECK-NEXT:     Address: 0x100076# CHECK-NEXT:     Offset: 0x100077# CHECK-NEXT:     Size:78# CHECK-NEXT:     Link: 079# CHECK-NEXT:     Info: 080# CHECK-NEXT:     AddressAlignment: 409681# CHECK-NEXT:     EntrySize: 082# CHECK-NEXT:   }83# CHECK-NEXT:   Section {84# CHECK-NEXT:     Index: 285# CHECK-NEXT:     Name: .text386# CHECK-NEXT:     Type: SHT_PROGBITS (0x1)87# CHECK-NEXT:     Flags [88# CHECK-NEXT:       SHF_ALLOC89# CHECK-NEXT:       SHF_EXECINSTR90# CHECK-NEXT:     ]91# CHECK-NEXT:     Address: 0x300092# CHECK-NEXT:     Offset: 0x300093# CHECK-NEXT:     Size:94# CHECK-NEXT:     Link: 095# CHECK-NEXT:     Info: 096# CHECK-NEXT:     AddressAlignment: 409697# CHECK-NEXT:     EntrySize: 098# CHECK-NEXT:   }99# CHECK-NEXT:   Section {100# CHECK-NEXT:     Index: 3101# CHECK-NEXT:     Name: .shstrtab102# CHECK-NEXT:     Type: SHT_STRTAB (0x3)103# CHECK-NEXT:     Flags [ (0x0)104# CHECK-NEXT:     ]105# CHECK-NEXT:     Address: 0x0106# CHECK-NEXT:     Offset:107# CHECK-NEXT:     Size:108# CHECK-NEXT:     Link: 0109# CHECK-NEXT:     Info: 0110# CHECK-NEXT:     AddressAlignment: 1111# CHECK-NEXT:     EntrySize: 0112# CHECK-NEXT:   }113# CHECK-NEXT: ]114 115#CHECK:     ProgramHeaders [116#CHECK-NEXT:  ProgramHeader {117#CHECK-NEXT:    Type: PT_LOAD (0x1)118#CHECK-NEXT:    Offset: 0x1000119#CHECK-NEXT:    VirtualAddress: 0x0120#CHECK-NEXT:    PhysicalAddress: 0x0121#CHECK-NEXT:    FileSize: 12288122#CHECK-NEXT:    MemSize: 12288123#CHECK-NEXT:    Flags [ (0x5)124#CHECK-NEXT:      PF_R (0x4)125#CHECK-NEXT:      PF_X (0x1)126#CHECK-NEXT:    ]127#CHECK-NEXT:    Alignment: 4096128#CHECK-NEXT:  }129#CHECK-NEXT:]130