1## Check we cannot remove a section containing symbols 2## referenced by relocations contained in the object. 3 4# RUN: yaml2obj %s -o %t1 5# RUN: not llvm-objcopy -R .data %t1 2>&1 | FileCheck %s -DINPUT=%t1 6# CHECK: error: '[[INPUT]]': section '.data' cannot be removed: (.text+0x1) has relocation against symbol 'foo' 7 8## Check the behavior when we also remove the relocation section. 9## We have no reference in this case and hence no error should be emitted. 10 11# RUN: yaml2obj %s -o %t2 12# RUN: llvm-objcopy -R .data -R .rela.text %t2 %t3 13# RUN: llvm-objdump --section-headers %t3 | FileCheck %s --check-prefix=NOSEC 14# NOSEC-NOT: .data 15# NOSEC-NOT: .rela.text 16 17--- !ELF 18FileHeader: 19 Class: ELFCLASS64 20 Data: ELFDATA2LSB 21 Type: ET_REL 22 Machine: EM_X86_64 23Sections: 24 - Name: .text 25 Type: SHT_PROGBITS 26 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 27 AddressAlign: 0x0000000000000004 28 Content: E800000000 29 - Name: .rela.text 30 Type: SHT_RELA 31 Link: .symtab 32 AddressAlign: 0x0000000000000008 33 EntSize: 0x0000000000000018 34 Info: .text 35 Relocations: 36 - Offset: 0x0000000000000001 37 Symbol: foo 38 Type: R_X86_64_GOTPCREL 39 Addend: -4 40 - Name: .data 41 Type: SHT_PROGBITS 42 Flags: [ SHF_WRITE, SHF_ALLOC ] 43 AddressAlign: 0x0000000000000001 44 Content: '0102' 45Symbols: 46 - Name: foo 47 Section: .data 48 Value: 0x0000000000000001 49... 50