diff options
author | Alexander Shaposhnikov <alexshap@fb.com> | 2020-09-18 18:11:22 -0700 |
---|---|---|
committer | Alexander Shaposhnikov <alexshap@fb.com> | 2020-09-18 18:13:05 -0700 |
commit | 5495b6916469c0fc242df4fc650b50848d75911b (patch) | |
tree | 93c8447ce73a5a6e0c42ffff08da4e048d17b7d3 /llvm/tools/llvm-objcopy/llvm-objcopy.cpp | |
parent | dbd53a1f0c939a55e7719c39d08179468f9ad3dc (diff) | |
download | llvm-5495b6916469c0fc242df4fc650b50848d75911b.zip llvm-5495b6916469c0fc242df4fc650b50848d75911b.tar.gz llvm-5495b6916469c0fc242df4fc650b50848d75911b.tar.bz2 |
[llvm-objcopy][MachO] Add llvm-bitcode-strip driver
This diff adds llvm-bitcode-strip driver to llvm-objcopy.
In the future this will enable us to build a replacement for the tool bitcode_strip.
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D87212
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/llvm-objcopy.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp index 69b23b6..ee882ff 100644 --- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp +++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp @@ -320,7 +320,7 @@ static Error executeObjcopy(CopyConfig &Config) { namespace { -enum class ToolType { Objcopy, Strip, InstallNameTool }; +enum class ToolType { Objcopy, Strip, InstallNameTool, BitcodeStrip }; } // anonymous namespace @@ -341,7 +341,9 @@ int main(int argc, char **argv) { (I + Tool.size() == Stem.size() || !isAlnum(Stem[I + Tool.size()])); }; ToolType Tool = ToolType::Objcopy; - if (Is("strip")) + if (Is("bitcode-strip") || Is("bitcode_strip")) + Tool = ToolType::BitcodeStrip; + else if (Is("strip")) Tool = ToolType::Strip; else if (Is("install-name-tool") || Is("install_name_tool")) Tool = ToolType::InstallNameTool; @@ -361,10 +363,13 @@ int main(int argc, char **argv) { auto Args = makeArrayRef(NewArgv).drop_front(); Expected<DriverConfig> DriverConfig = - (Tool == ToolType::Strip) ? parseStripOptions(Args, reportWarning) - : ((Tool == ToolType::InstallNameTool) - ? parseInstallNameToolOptions(Args) - : parseObjcopyOptions(Args, reportWarning)); + (Tool == ToolType::Strip) + ? parseStripOptions(Args, reportWarning) + : ((Tool == ToolType::InstallNameTool) + ? parseInstallNameToolOptions(Args) + : ((Tool == ToolType::BitcodeStrip) + ? parseBitcodeStripOptions(Args) + : parseObjcopyOptions(Args, reportWarning))); if (!DriverConfig) { logAllUnhandledErrors(DriverConfig.takeError(), WithColor::error(errs(), ToolName)); |