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"
54 #CHECK-NEXT: Value: 0x0
56 #CHECK-NEXT: Binding: Local
57 #CHECK-NEXT: Type: None
59 #CHECK-NEXT: Section: Undefined
62 #CHECK-NEXT: Name: oof
63 #CHECK-NEXT: Value: 0x1004
65 #CHECK-NEXT: Binding: Global
66 #CHECK-NEXT: Type: Function
68 #CHECK-NEXT: Section: .text
71 #CHECK-NEXT: Name: bar
72 #CHECK-NEXT: Value: 0x2000
74 #CHECK-NEXT: Binding: Global
75 #CHECK-NEXT: Type: Object
77 #CHECK-NEXT: Section: .data
81 #CHECK-NEXT: Value: 0x1008
83 #CHECK-NEXT: Binding: Global
84 #CHECK-NEXT: Type: Function
86 #CHECK-NEXT: Section: .text
89 #BAD-FORMAT: Bad format for --redefine-sym
90 #MULTIPLE-REDEFINITION: Multiple redefinition of symbol foo
91 #MISSING-SYM-NAME: error: {{.*}}.rename.txt:2: missing new symbol name
92 #NO-FILE: error: '{{.*}}.rename-none.txt': {{[Nn]}}o such file or directory
94 #MULTIPLE-FILES: Name: oof
95 #MULTIPLE-FILES-NEXT: Value: 0x1004
96 #MULTIPLE-FILES: Name: rab
97 #MULTIPLE-FILES-NEXT: Value: 0x2000
98 #MULTIPLE-FILES: Name: ytpme
99 #MULTIPLE-FILES-NEXT: Value: 0x1008