# REQUIRES: x86-registered-target # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %s -o %t ## A non-existent symbol does not error. # RUN: llvm-objcopy --redefine-sym _func=_cnuf1234 --redefine-sym _foo=_ba --redefine-sym=_notexist= %t %t2 2>&1 | count 0 # RUN: llvm-readobj --symbols %t2 | FileCheck %s # RUN: echo '_func _cnuf1234 #rename func' > %t.rename.txt # RUN: echo ' _foo _ba ' >> %t.rename.txt # RUN: echo '_notexist _notexist' >> %t.rename.txt # RUN: llvm-objcopy --redefine-syms %t.rename.txt %t %t3 2>&1 | count 0 # RUN: cmp %t2 %t3 # CHECK: Symbol { # CHECK-NEXT: Name: _ba (1) # CHECK-NEXT: Extern # CHECK-NEXT: Type: Section (0xE) # CHECK-NEXT: Section: __const (0x2) # CHECK-NEXT: RefType: UndefinedNonLazy (0x0) # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Value: 0x0 # CHECK-NEXT: } # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: _cnuf1234 (5) # CHECK-NEXT: Extern # CHECK-NEXT: Type: Section (0xE) # CHECK-NEXT: Section: __text (0x1) # CHECK-NEXT: RefType: UndefinedNonLazy (0x0) # CHECK-NEXT: Flags [ (0x0) # CHECK-NEXT: ] # CHECK-NEXT: Value: 0x0 # CHECK-NEXT: } ## Check that --redefine-sym executes before --strip-symbol. # RUN: llvm-objcopy --strip-symbol _foo --redefine-sym _foo=_ba %t %t.notstripped # RUN: llvm-readobj --symbols %t.notstripped | FileCheck %s --check-prefix=NOTSTRIPPED # NOTSTRIPPED: Name: _ba # NOTSTRIPPED: Name: _func ## FIXME: _ba should be stripped after --strip-symbol is implemented. # RUN: llvm-objcopy --strip-symbol _ba --redefine-sym _foo=_ba %t %t.noba # RUN: llvm-readobj --symbols %t.noba | FileCheck %s --check-prefix=NOTSTRIPPED .globl _func _func: .section __TEXT,__const .globl _foo _foo: