[llvm] 7a836ba - [llvm-objcopy][MachO] Ignore LC_LINKER_OPTION when redefining symbols
Keith Smiley via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 31 15:49:59 PST 2022
Author: Keith Smiley
Date: 2022-01-31T15:49:06-08:00
New Revision: 7a836ba3c5f2bdbd8b802a205f21b477ef91963d
URL: https://github.com/llvm/llvm-project/commit/7a836ba3c5f2bdbd8b802a205f21b477ef91963d
DIFF: https://github.com/llvm/llvm-project/commit/7a836ba3c5f2bdbd8b802a205f21b477ef91963d.diff
LOG: [llvm-objcopy][MachO] Ignore LC_LINKER_OPTION when redefining symbols
Previously you would get this error:
```
error: unsupported load command (cmd=0x2d)
```
If the binary you were redefining the symbols of contained a
LC_LINKER_OPTION load command. This command does not need to be changed
when redefining symbols so we can ignore it like many others.
Differential Revision: https://reviews.llvm.org/D118526
Added:
Modified:
llvm/test/tools/llvm-objcopy/MachO/redefine-symbol.s
llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp
Removed:
################################################################################
diff --git a/llvm/test/tools/llvm-objcopy/MachO/redefine-symbol.s b/llvm/test/tools/llvm-objcopy/MachO/redefine-symbol.s
index 82d20ca668d6..5919c93d20bf 100644
--- a/llvm/test/tools/llvm-objcopy/MachO/redefine-symbol.s
+++ b/llvm/test/tools/llvm-objcopy/MachO/redefine-symbol.s
@@ -43,6 +43,7 @@
# RUN: llvm-objcopy --strip-symbol _ba --redefine-sym _foo=_ba %t %t.noba
# RUN: llvm-readobj --symbols %t.noba | FileCheck %s --check-prefix=NOTSTRIPPED
+.linker_option "-lc"
.globl _func
_func:
diff --git a/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp b/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp
index 3cac77411845..6b731abd9ed9 100644
--- a/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp
+++ b/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp
@@ -417,6 +417,7 @@ Error MachOLayoutBuilder::layoutTail(uint64_t Offset) {
case MachO::LC_SUB_UMBRELLA:
case MachO::LC_SUB_CLIENT:
case MachO::LC_SUB_LIBRARY:
+ case MachO::LC_LINKER_OPTION:
// Nothing to update.
break;
default:
More information about the llvm-commits
mailing list