66 lines · plain
1# RUN: yaml2obj %s -o %t2# RUN: llvm-objcopy --remove-symbol-prefix __pf_ %t %t23# RUN: llvm-readelf --symbols %t2 | FileCheck %s4 5## Show that an empty string is permitted as the argument to6## --remove-symbol-prefix.7# RUN: llvm-objcopy --remove-symbol-prefix= %t2 %t38# RUN: cmp %t2 %t39 10## When both options are present, llvm-objcopy should remove11## prefixes first, before adding prefixes.12# RUN: llvm-objcopy --prefix-symbols=__1_ %t %t413# RUN: llvm-objcopy --prefix-symbols=__2_ %t %t514# RUN: llvm-objcopy --remove-symbol-prefix=__1_ --prefix-symbols=__2_ %t4 %t615# RUN: cmp %t5 %t616 17## Show that the last --remove-symbol-prefix option wins.18# RUN: llvm-objcopy --remove-symbol-prefix=__pf_ --remove-symbol-prefix=__ %t %t719# RUN: llvm-objcopy --remove-symbol-prefix=__ %t %t820# RUN: cmp %t7 %t821 22!ELF23FileHeader:24 Class: ELFCLASS6425 Data: ELFDATA2LSB26 Type: ET_REL27 Machine: EM_X86_6428Sections:29 - Name: .text30 Type: SHT_PROGBITS31 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]32 Address: 0x100033 AddressAlign: 0x000000000000001034 Size: 6435Symbols:36 - Name: __pf_foo37 Type: STT_SECTION38 Section: .text39 - Name: __pf_bar40 Type: STT_FILE41 Section: .text42 - Name: foobar43 Type: STT_FUNC44 Section: .text45 Binding: STB_GLOBAL46 - Name: foo__pf_bar147 Type: STT_FUNC48 Section: .text49 Binding: STB_GLOBAL50 - Name: __pf_foo__pf_bar251 Type: STT_FUNC52 Section: .text53 Binding: STB_GLOBAL54 - Name: undef55 Binding: STB_GLOBAL56 57# CHECK: Symbol table '.symtab' contains 7 entries:58# CHECK-NEXT: Name59# CHECK-NEXT: {{ $}}60# CHECK-NEXT: __pf_foo61# CHECK-NEXT: bar62# CHECK-NEXT: foobar63# CHECK-NEXT: foo__pf_bar164# CHECK-NEXT: foo__pf_bar265# CHECK-NEXT: undef66