[llvm-driver] Pass extra arguments to tools
Differential Revision: https://reviews.llvm.org/D137799
This commit is contained in:
parent
34653a0a8a
commit
1f173a0653
|
@ -37,6 +37,7 @@
|
|||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/PrettyStackTrace.h"
|
||||
#include "llvm/Support/Process.h"
|
||||
|
@ -369,7 +370,7 @@ static int ExecuteCC1Tool(SmallVectorImpl<const char *> &ArgV) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int clang_main(int Argc, char **Argv) {
|
||||
int clang_main(int Argc, char **Argv, const llvm::ToolContext &) {
|
||||
noteBottomOfStack();
|
||||
llvm::InitLLVM X(Argc, Argv);
|
||||
llvm::setBugReportMsg("PLEASE submit a bug report to " BUG_REPORT_URL
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/CrashRecoveryContext.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/PluginLoader.h"
|
||||
#include "llvm/Support/Process.h"
|
||||
|
@ -214,7 +215,7 @@ static unsigned inTestVerbosity() {
|
|||
return v;
|
||||
}
|
||||
|
||||
int lld_main(int argc, char **argv) {
|
||||
int lld_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
InitLLVM x(argc, argv);
|
||||
sys::Process::UseANSIEscapeCodes(true);
|
||||
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
int @TOOL_NAME@_main(int argc, char **argv);
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
|
||||
int main(int argc, char **argv) { return @TOOL_NAME@_main(argc, argv); }
|
||||
int @TOOL_NAME@_main(int argc, char **, const llvm::ToolContext &);
|
||||
|
||||
int main(int argc, char **argv) { return @TOOL_NAME@_main(argc, argv, {}); }
|
||||
|
|
18
llvm/include/llvm/Support/LLVMDriver.h
Normal file
18
llvm/include/llvm/Support/LLVMDriver.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
//===- LLVMDriver.h ---------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_SUPPORT_LLVMDRIVER_H
|
||||
#define LLVM_SUPPORT_LLVMDRIVER_H
|
||||
|
||||
namespace llvm {
|
||||
|
||||
struct ToolContext {};
|
||||
|
||||
} // namespace llvm
|
||||
|
||||
#endif
|
|
@ -41,4 +41,4 @@ if(APPLE)
|
|||
target_link_libraries(dsymutil PRIVATE "-framework CoreFoundation")
|
||||
endif(APPLE)
|
||||
|
||||
target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB})
|
||||
# target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB})
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "llvm/Support/FileCollector.h"
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/TargetSelect.h"
|
||||
#include "llvm/Support/ThreadPool.h"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "llvm/Support/Format.h"
|
||||
#include "llvm/Support/FormatVariadic.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/LineIterator.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
|
@ -1425,7 +1426,7 @@ static int ranlib_main(int argc, char **argv) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int llvm_ar_main(int argc, char **argv) {
|
||||
int llvm_ar_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(argc, argv);
|
||||
ToolName = argv[0];
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "llvm/Option/Option.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/WithColor.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/TargetParser/Host.h"
|
||||
|
@ -145,7 +146,7 @@ static void demangleLine(llvm::raw_ostream &OS, StringRef Mangled, bool Split) {
|
|||
OS.flush();
|
||||
}
|
||||
|
||||
int llvm_cxxfilt_main(int argc, char **argv) {
|
||||
int llvm_cxxfilt_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(argc, argv);
|
||||
BumpPtrAllocator A;
|
||||
StringSaver Saver(A);
|
||||
|
|
|
@ -11,12 +11,14 @@
|
|||
#include "llvm/ADT/StringSwitch.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/WithColor.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
#define LLVM_DRIVER_TOOL(tool, entry) int entry##_main(int argc, char **argv);
|
||||
#define LLVM_DRIVER_TOOL(tool, entry) \
|
||||
int entry##_main(int argc, char **argv, const llvm::ToolContext &);
|
||||
#include "LLVMDriverTools.def"
|
||||
|
||||
constexpr char subcommands[] =
|
||||
|
@ -62,7 +64,7 @@ static int findTool(int Argc, char **Argv) {
|
|||
|
||||
#define LLVM_DRIVER_TOOL(tool, entry) \
|
||||
if (Is(tool)) \
|
||||
return entry##_main(Argc, Argv);
|
||||
return entry##_main(Argc, Argv, {});
|
||||
#include "LLVMDriverTools.def"
|
||||
|
||||
if (Is("llvm"))
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "llvm/Support/Errc.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
#include "llvm/Support/FileOutputBuffer.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/VersionTuple.h"
|
||||
|
@ -382,7 +383,7 @@ static DriverConfig parseArgs(int argc, char *const *argv) {
|
|||
return Config;
|
||||
}
|
||||
|
||||
int llvm_ifs_main(int argc, char **argv) {
|
||||
int llvm_ifs_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
DriverConfig Config = parseArgs(argc, argv);
|
||||
|
||||
if (Config.InputFilePaths.empty())
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "llvm/Support/Error.h"
|
||||
#include "llvm/Support/FileOutputBuffer.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/TargetSelect.h"
|
||||
#include "llvm/Support/WithColor.h"
|
||||
#include "llvm/TargetParser/Triple.h"
|
||||
|
@ -723,7 +724,7 @@ replaceSlices(LLVMContext &LLVMCtx,
|
|||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
int llvm_lipo_main(int argc, char **argv) {
|
||||
int llvm_lipo_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(argc, argv);
|
||||
llvm::InitializeAllTargetInfos();
|
||||
llvm::InitializeAllTargetMCs();
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "llvm/Support/Error.h"
|
||||
#include "llvm/Support/FileOutputBuffer.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/PrettyStackTrace.h"
|
||||
|
@ -82,7 +83,7 @@ static void error(Error EC) {
|
|||
});
|
||||
}
|
||||
|
||||
int llvm_mt_main(int Argc, char **Argv) {
|
||||
int llvm_mt_main(int Argc, char **Argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(Argc, Argv);
|
||||
|
||||
CvtResOptTable T;
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "llvm/Support/FileSystem.h"
|
||||
#include "llvm/Support/Format.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/Program.h"
|
||||
#include "llvm/Support/Signals.h"
|
||||
|
@ -2286,7 +2287,7 @@ exportSymbolNamesFromFiles(const std::vector<std::string> &InputFilenames) {
|
|||
printExportSymbolList(SymbolList);
|
||||
}
|
||||
|
||||
int llvm_nm_main(int argc, char **argv) {
|
||||
int llvm_nm_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(argc, argv);
|
||||
BumpPtrAllocator A;
|
||||
StringSaver Saver(A);
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
#include "llvm/Support/ErrorOr.h"
|
||||
#include "llvm/Support/FileUtilities.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/Memory.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/Process.h"
|
||||
|
@ -223,7 +224,7 @@ static Error executeObjcopy(ConfigManager &ConfigMgr) {
|
|||
return Error::success();
|
||||
}
|
||||
|
||||
int llvm_objcopy_main(int argc, char **argv) {
|
||||
int llvm_objcopy_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(argc, argv);
|
||||
ToolName = argv[0];
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "llvm/Support/Format.h"
|
||||
#include "llvm/Support/FormattedStream.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/MD5.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
|
@ -2988,7 +2989,8 @@ static int show_main(int argc, const char *argv[]) {
|
|||
return showMemProfProfile(Filename, ProfiledBinary, SFormat, OS);
|
||||
}
|
||||
|
||||
int llvm_profdata_main(int argc, char **argvNonConst) {
|
||||
int llvm_profdata_main(int argc, char **argvNonConst,
|
||||
const llvm::ToolContext &) {
|
||||
const char **argv = const_cast<const char **>(argvNonConst);
|
||||
InitLLVM X(argc, argv);
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "llvm/Support/FileSystem.h"
|
||||
#include "llvm/Support/FileUtilities.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/PrettyStackTrace.h"
|
||||
|
@ -734,7 +735,7 @@ void doCvtres(std::string Src, std::string Dest, std::string TargetTriple) {
|
|||
|
||||
} // anonymous namespace
|
||||
|
||||
int llvm_rc_main(int Argc, char **Argv) {
|
||||
int llvm_rc_main(int Argc, char **Argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(Argc, Argv);
|
||||
ExitOnErr.setBanner("llvm-rc: ");
|
||||
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
#include "llvm/Support/FileSystem.h"
|
||||
#include "llvm/Support/FormatVariadic.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/ScopedPrinter.h"
|
||||
#include "llvm/Support/WithColor.h"
|
||||
|
@ -632,7 +633,7 @@ std::unique_ptr<ScopedPrinter> createWriter() {
|
|||
return std::make_unique<ScopedPrinter>(fouts());
|
||||
}
|
||||
|
||||
int llvm_readobj_main(int argc, char **argv) {
|
||||
int llvm_readobj_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(argc, argv);
|
||||
BumpPtrAllocator A;
|
||||
StringSaver Saver(A);
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "llvm/Support/FileSystem.h"
|
||||
#include "llvm/Support/Format.h"
|
||||
#include "llvm/Support/InitLLVM.h"
|
||||
#include "llvm/Support/LLVMDriver.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
#include "llvm/Support/WithColor.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
|
@ -869,7 +870,7 @@ static void printBerkeleyTotals() {
|
|||
<< "(TOTALS)\n";
|
||||
}
|
||||
|
||||
int llvm_size_main(int argc, char **argv) {
|
||||
int llvm_size_main(int argc, char **argv, const llvm::ToolContext &) {
|
||||
InitLLVM X(argc, argv);
|
||||
BumpPtrAllocator A;
|
||||
StringSaver Saver(A);
|
||||
|
|
Loading…
Reference in New Issue
Block a user