# RUN: yaml2obj %s -o %t # RUN: llvm-objcopy --remove-symbol-prefix __pf_ %t %t2 # RUN: llvm-readelf --symbols %t2 | FileCheck %s ## Show that an empty string is permitted as the argument to ## --remove-symbol-prefix. # RUN: llvm-objcopy --remove-symbol-prefix= %t2 %t3 # RUN: cmp %t2 %t3 ## When both options are present, llvm-objcopy should remove ## prefixes first, before adding prefixes. # RUN: llvm-objcopy --prefix-symbols=__1_ %t %t4 # RUN: llvm-objcopy --prefix-symbols=__2_ %t %t5 # RUN: llvm-objcopy --remove-symbol-prefix=__1_ --prefix-symbols=__2_ %t4 %t6 # RUN: cmp %t5 %t6 ## Show that the last --remove-symbol-prefix option wins. # RUN: llvm-objcopy --remove-symbol-prefix=__pf_ --remove-symbol-prefix=__ %t %t7 # RUN: llvm-objcopy --remove-symbol-prefix=__ %t %t8 # RUN: cmp %t7 %t8 !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] Address: 0x1000 AddressAlign: 0x0000000000000010 Size: 64 Symbols: - Name: __pf_foo Type: STT_SECTION Section: .text - Name: __pf_bar Type: STT_FILE Section: .text - Name: foobar Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: foo__pf_bar1 Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: __pf_foo__pf_bar2 Type: STT_FUNC Section: .text Binding: STB_GLOBAL - Name: undef Binding: STB_GLOBAL # CHECK: Symbol table '.symtab' contains 7 entries: # CHECK-NEXT: Name # CHECK-NEXT: {{ $}} # CHECK-NEXT: __pf_foo # CHECK-NEXT: bar # CHECK-NEXT: foobar # CHECK-NEXT: foo__pf_bar1 # CHECK-NEXT: foo__pf_bar2 # CHECK-NEXT: undef