1 # RUN: yaml2obj %s > %t
2 # RUN: llvm-objcopy --redefine-sym foo=oof --redefine-sym empty= %t %t2
3 # RUN: llvm-readobj --symbols %t2 | FileCheck %s
4 # RUN: not llvm-objcopy --redefine-sym barbar %t %t2 2>&1 | FileCheck %s --check-prefix=BAD-FORMAT
5 # RUN: not llvm-objcopy --redefine-sym foo=f1 --redefine-sym foo=f2 %t %t2 2>&1 | FileCheck %s --check-prefix=MULTIPLE-REDEFINITION
6 # RUN: echo " foo oof #rename foo " > %t.rename.txt
7 # RUN: echo "empty" >> %t.rename.txt
8 # RUN: not llvm-objcopy --redefine-syms %t.rename.txt %t %t3 2>&1 | FileCheck %s --check-prefix=MISSING-SYM-NAME
9 # RUN: not llvm-objcopy --redefine-syms %t.rename-none.txt %t %t-none 2>&1 | FileCheck %s --check-prefix=NO-FILE
10 # RUN: echo " bar rab #rename bar " > %t.rename2.txt
11 # RUN: echo " foo oof #rename foo " > %t.rename3.txt
12 # RUN: echo " empty ytpme #rename empty " >> %t.rename3.txt
13 # RUN: llvm-objcopy --redefine-syms %t.rename2.txt --redefine-syms %t.rename3.txt %t %t4
14 # RUN: llvm-readobj --symbols %t4 | FileCheck %s --check-prefix=MULTIPLE-FILES
25 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
27 AddressAlign: 0x0000000000000010
28 Content: "0000000000000000"
33 AddressAlign: 0x0000000000000010
34 Content: "0000000000000000"
56 #CHECK-NEXT: Value: 0x0
58 #CHECK-NEXT: Binding: Local
59 #CHECK-NEXT: Type: None
61 #CHECK-NEXT: Section: Undefined
64 #CHECK-NEXT: Name: oof
65 #CHECK-NEXT: Value: 0x1004
67 #CHECK-NEXT: Binding: Global
68 #CHECK-NEXT: Type: Function
70 #CHECK-NEXT: Section: .text
73 #CHECK-NEXT: Name: bar
74 #CHECK-NEXT: Value: 0x2000
76 #CHECK-NEXT: Binding: Global
77 #CHECK-NEXT: Type: Object
79 #CHECK-NEXT: Section: .data
83 #CHECK-NEXT: Value: 0x1008
85 #CHECK-NEXT: Binding: Global
86 #CHECK-NEXT: Type: Function
88 #CHECK-NEXT: Section: .text
91 #BAD-FORMAT: bad format for --redefine-sym
92 #MULTIPLE-REDEFINITION: multiple redefinition of symbol 'foo'
93 #MISSING-SYM-NAME: error: {{.*}}.rename.txt:2: missing new symbol name
94 #NO-FILE: error: '{{.*}}.rename-none.txt': {{[Nn]}}o such file or directory
96 #MULTIPLE-FILES: Name: oof
97 #MULTIPLE-FILES-NEXT: Value: 0x1004
98 #MULTIPLE-FILES: Name: rab
99 #MULTIPLE-FILES-NEXT: Value: 0x2000
100 #MULTIPLE-FILES: Name: ytpme
101 #MULTIPLE-FILES-NEXT: Value: 0x1008