xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/linked-section.test (revision 5772e02bd0f1a815bd49ad0344394b24be10847e)
1*5772e02bSJames Henderson## This test checks that if a section has a sh_link field, and one or more
2*5772e02bSJames Henderson## sections are removed such that the target section index changes, then
3*5772e02bSJames Henderson## llvm-objcopy correctly updates the sh_link field.
4*5772e02bSJames Henderson
5*5772e02bSJames Henderson# RUN: yaml2obj %s -o %t.o
6*5772e02bSJames Henderson# RUN: llvm-objcopy --remove-section .foo %t.o %t2.o
7*5772e02bSJames Henderson# RUN: llvm-readobj --section-headers %t2.o | FileCheck %s
8*5772e02bSJames Henderson
9*5772e02bSJames Henderson--- !ELF
10*5772e02bSJames HendersonFileHeader:
11*5772e02bSJames Henderson  Class:   ELFCLASS64
12*5772e02bSJames Henderson  Data:    ELFDATA2LSB
13*5772e02bSJames Henderson  Type:    ET_EXEC
14*5772e02bSJames Henderson  Machine: EM_X86_64
15*5772e02bSJames HendersonSections:
16*5772e02bSJames Henderson  - Name: .foo
17*5772e02bSJames Henderson    Type: SHT_PROGBITS
18*5772e02bSJames Henderson  - Name: .bar
19*5772e02bSJames Henderson    Type: SHT_PROGBITS
20*5772e02bSJames Henderson  - Name: .baz
21*5772e02bSJames Henderson    Type: SHT_PROGBITS
22*5772e02bSJames Henderson    Link: .bar
23*5772e02bSJames Henderson
24*5772e02bSJames Henderson# CHECK:      Index: 1
25*5772e02bSJames Henderson# CHECK-NEXT: Name: .bar
26*5772e02bSJames Henderson# CHECK:      Name: .baz
27*5772e02bSJames Henderson## Find the next "Link" line, then check the value is exactly the index of .bar.
28*5772e02bSJames Henderson# CHECK:      Link
29*5772e02bSJames Henderson# CHECK-SAME:     : 1{{$}}
30