aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
diff options
context:
space:
mode:
authorChris Bieneman <chris.bieneman@me.com>2022-06-06 04:25:55 +0000
committerAlex Brachet <abrachet@google.com>2022-06-06 04:27:32 +0000
commitf06abbb393800b0d466c88e283c06f75561c432c (patch)
tree4ff07e40ad34b1a4564c80f7868d73cc478b7c2b /llvm/tools/llvm-objcopy/llvm-objcopy.cpp
parentc2d27c89593e92f8e557f27ec02f083760eeab2d (diff)
downloadllvm-f06abbb393800b0d466c88e283c06f75561c432c.zip
llvm-f06abbb393800b0d466c88e283c06f75561c432c.tar.gz
llvm-f06abbb393800b0d466c88e283c06f75561c432c.tar.bz2
LLVM Driver Multicall tool
This patch adds an llvm-driver multicall tool that can combine multiple LLVM-based tools. The build infrastructure is enabled for a tool by adding the GENERATE_DRIVER option to the add_llvm_executable CMake call, and changing the tool's main function to a canonicalized tool_name_main format (i.e. llvm_ar_main, clang_main, etc...). As currently implemented llvm-driver contains dsymutil, llvm-ar, llvm-cxxfilt, llvm-objcopy, and clang (if clang is included in the build). llvm-driver can be enabled from builds by setting LLVM_TOOL_LLVM_DRIVER_BUILD=On. There are several limitations in the current implementation, which can be addressed in subsequent patches: (1) the multicall binary cannot currently properly handle multi-dispatch tools. This means symlinking llvm-ranlib to llvm-driver will not properly result in llvm-ar's main being called. (2) the multicall binary cannot be comprised of tools containing conflicting cl::opt options as the global cl::opt option list cannot contain duplicates. These limitations can be addressed in subsequent patches. Differential revision: https://reviews.llvm.org/D109977
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r--llvm/tools/llvm-objcopy/llvm-objcopy.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
index 117a63c..aa26215 100644
--- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
+++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
@@ -223,7 +223,7 @@ static Error executeObjcopy(ConfigManager &ConfigMgr) {
return Error::success();
}
-int main(int argc, char **argv) {
+int llvm_objcopy_main(int argc, char **argv) {
InitLLVM X(argc, argv);
ToolName = argv[0];