| # RUN: yaml2obj %s -o %t |
| # RUN: llvm-objcopy --strip-dwo %t |
| # RUN: llvm-readobj --symbols -S --elf-section-groups %t | FileCheck %s |
| |
| ## `llvm-objcopy --strip-dwo` strips out dwo sections, as a result, the index of |
| ## the symbol table, the indices of the symbols and the indices of the sections |
| ## which go after the removed ones will change. Consequently, the fields |
| ## Link, Info and the content of .group need to be updated. |
| |
| # CHECK-NOT: .debug_ |
| |
| # CHECK: Groups { |
| # CHECK-NEXT: Group { |
| # CHECK-NEXT: Name: .group (1) |
| # CHECK-NEXT: Index: 1{{$}} |
| # CHECK-NEXT: Link: 6 |
| # CHECK-NEXT: Info: 2 |
| # CHECK-NEXT: Type: COMDAT (0x1) |
| # CHECK-NEXT: Signature: group1 |
| # CHECK-NEXT: Section(s) in group [ |
| # CHECK-NEXT: .text.group1 (3) |
| # CHECK-NEXT: ] |
| |
| # CHECK-NOT: .debug_ |
| |
| # CHECK: Name: .group (1) |
| # CHECK-NEXT: Index: 2{{$}} |
| # CHECK-NEXT: Link: 6 |
| # CHECK-NEXT: Info: 1 |
| # CHECK-NEXT: Type: COMDAT (0x1) |
| # CHECK-NEXT: Signature: group2 |
| # CHECK-NEXT: Section(s) in group [ |
| # CHECK-NEXT: .text.group2 (4) |
| # CHECK-NEXT: .rela.text.group2 (5) |
| # CHECK-NEXT: ] |
| |
| # CHECK-NOT: .debug_ |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .debug_before.dwo |
| Type: SHT_PROGBITS |
| - Name: .group |
| Type: SHT_GROUP |
| Link: .symtab |
| Info: group1 |
| Members: |
| - SectionOrType: GRP_COMDAT |
| - SectionOrType: .text.group1 |
| - Name: .text.group1 |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] |
| - Name: '.group [1]' |
| Type: SHT_GROUP |
| Link: .symtab |
| Info: group2 |
| Members: |
| - SectionOrType: GRP_COMDAT |
| - SectionOrType: .text.group2 |
| - SectionOrType: .rela.text.group2 |
| - Name: .text.group2 |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] |
| - Name: .rela.text.group2 |
| Type: SHT_RELA |
| Flags: [ SHF_GROUP ] |
| Info: .text.group2 |
| - Name: .debug_after.dwo |
| Type: SHT_PROGBITS |
| Symbols: |
| - Name: debug_before |
| Section: .debug_before.dwo |
| - Name: group2 |
| Section: .text.group2 |
| - Name: group1 |
| Section: .text.group1 |
| - Name: debug_after |
| Section: .debug_after.dwo |