| # RUN: yaml2obj %s -o %t |
| # RUN: llvm-objcopy --strip-all-gnu --allow-broken-links %t %t2 |
| # RUN: llvm-strip --strip-all-gnu --allow-broken-links %t -o %t3 |
| # RUN: llvm-readobj --file-headers --sections %t2 | FileCheck %s |
| # RUN: cmp %t2 %t3 |
| |
| # Show that the debug section in a segment was removed, to match GNU. |
| # First validate that the offset in use is correct. |
| # RUN: llvm-objcopy %t %t4 |
| # RUN: od -t x1 -N 4 -j 120 %t4 | FileCheck %s --ignore-case --check-prefix=COPY-BYTES |
| # RUN: od -t x1 -N 4 -j 120 %t2 | FileCheck %s --ignore-case --check-prefix=STRIP-BYTES |
| |
| !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .debug_in_segment |
| Type: SHT_PROGBITS |
| Flags: [ ] |
| Content: "deadbeef" |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Flags: [ SHF_ALLOC ] |
| - Name: .symtab |
| Type: SHT_SYMTAB |
| Flags: [ SHF_ALLOC ] |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Size: 4 |
| - Name: .debug_info |
| Type: SHT_PROGBITS |
| Flags: [ ] |
| AddressAlign: 0x1 |
| Size: 4 |
| - Name: .debug_loc |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC ] |
| AddressAlign: 0x1 |
| Size: 4 |
| - Name: .comment |
| Type: SHT_PROGBITS |
| - Name: .random_section_name |
| Type: SHT_PROGBITS |
| - Name: .debug_not_a_real_debug_section |
| Type: SHT_PROGBITS |
| - Name: .rel.text |
| Type: SHT_REL |
| Info: .text |
| - Name: .rela.text |
| Type: SHT_RELA |
| Info: .text |
| ProgramHeaders: |
| # Use an arbitrary segment type to show that the segment type is unimportant. |
| - Type: 0x61234567 |
| FirstSec: .debug_in_segment |
| LastSec: .debug_in_segment |
| |
| # CHECK: SectionHeaderCount: 8 |
| |
| # CHECK: Name: .dynstr |
| # CHECK: Name: .symtab |
| # CHECK: Name: .text |
| # CHECK: Name: .debug_loc |
| # CHECK: Name: .comment |
| # CHECK: Name: .random_section_name |
| # CHECK: Name: .shstrtab |
| |
| # COPY-BYTES: de ad be ef |
| # STRIP-BYTES: 00 00 00 00 |