# RUN: yaml2obj %s -o %t
# RUN: llvm-objcopy --prefix-symbols prefix %t %t2
# RUN: llvm-readelf --symbols %t2 | FileCheck %s --check-prefixes=COMMON,BASIC
# RUN: llvm-objcopy --redefine-sym bar=baz --prefix-symbols prefix %t %t3
# RUN: llvm-readelf --symbols %t3 | FileCheck %s --check-prefixes=COMMON,REDEF
## Show that an empty string is permitted as the argument to
## --prefix-symbols.
# RUN: llvm-objcopy --prefix-symbols= %t2 %t4
# RUN: cmp %t2 %t4
## Show that the last prefix wins.
# RUN: llvm-objcopy --prefix-symbols foo --prefix-symbols prefix %t %t5
# RUN: cmp %t2 %t5
!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: foo
Type: STT_SECTION
Section: .text
- Name: bar
Type: STT_FILE
Section: .text
- Name: foobar
Type: STT_FUNC
Section: .text
Binding: STB_GLOBAL
- Name: undef
Binding: STB_GLOBAL
# COMMON: Symbol table '.symtab' contains 5 entries:
# COMMON-NEXT: Num: Value Size Type Bind Vis Ndx Name
# COMMON-NEXT: 0: [[#]] 0 NOTYPE LOCAL {{.*}}
# COMMON-NEXT: 1: [[#]] 0 SECTION LOCAL {{.*}} foo
# BASIC-NEXT: 2: [[#]] 0 FILE LOCAL {{.*}} prefixbar
# REDEF-NEXT: 2: [[#]] 0 FILE LOCAL {{.*}} prefixbaz
# COMMON-NEXT: 3: [[#]] 0 FUNC GLOBAL {{.*}} prefixfoobar
# COMMON-NEXT: 4: [[#]] 0 NOTYPE GLOBAL {{.*}} prefixundef