Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-objcopy / ELF / only-section-strip-undefined.test
blob7b2ed218d7a154976c504f5a93996ef6302bffab
1 ## Here we want to check that llvm-objcopy removes an undefined symbol
2 ## if all references to it have been stripped.
4 # RUN: yaml2obj --docnum=1 %s -o %t.o
5 # RUN: llvm-objcopy -j .other.section %t.o %t2.o
6 # RUN: llvm-readobj --symbols %t2.o | FileCheck %s
8 # RUN: llvm-objcopy -j .text -j .rela.text1 %t.o %t2.o
9 # RUN: llvm-readobj --symbols %t2.o | FileCheck %s --check-prefix=BAR
11 # CHECK-NOT: Name: bar
12 # BAR: Name: bar
14 --- !ELF
15 FileHeader:
16   Class:   ELFCLASS64
17   Data:    ELFDATA2LSB
18   Type:    ET_REL
19   Machine: EM_X86_64
20 Sections:
21   - Name:        .text
22     Type:        SHT_PROGBITS
23   - Name:        .rela.text1
24     Type:        SHT_RELA
25     Relocations:
26       - Offset:  0x0000000000000001
27         Symbol:  bar
28         Type:    R_X86_64_32
29   - Name:        .rela.text2
30     Type:        SHT_RELA
31     Relocations:
32       - Offset:  0x0000000000000001
33         Symbol:  bar
34         Type:    R_X86_64_32
35   - Name:        .other.section
36     Type:        SHT_PROGBITS
37 Symbols:
38   - Name:    bar
39     Binding: STB_GLOBAL
40 ...
42 ## Check we remove unreferenced undefined symbols, even if
43 ## they weren't previously referenced. This follows GNU.
45 # RUN: yaml2obj --docnum=2 %s -o %t.o
46 # RUN: llvm-objcopy -j .keep_me %t.o %t2.o
47 # RUN: llvm-readobj --symbols %t2.o | FileCheck %s
49 --- !ELF
50 FileHeader:
51   Class:   ELFCLASS64
52   Data:    ELFDATA2LSB
53   Type:    ET_REL
54   Machine: EM_X86_64
55 Sections:
56   - Name: .keep_me
57     Type: SHT_PROGBITS
58 Symbols:
59   - Name:    bar
60     Binding: STB_GLOBAL
61 ...