Skip to content

Commit d5ca900

Browse files
author
Andrés Villegas
committed
[llvm-{debuginfod,ml,objdump,symbolizer}, dsymutil] Enable multicall driver
Differential Revision: https://reviews.llvm.org/D157670
1 parent c296c35 commit d5ca900

File tree

11 files changed

+35
-10
lines changed

11 files changed

+35
-10
lines changed

llvm/tools/dsymutil/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,10 @@ add_llvm_tool(dsymutil
3636
intrinsics_gen
3737
${tablegen_deps}
3838
DsymutilTableGen
39+
GENERATE_DRIVER
3940
)
4041

41-
if(APPLE)
42+
if(APPLE AND NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
4243
target_link_libraries(dsymutil PRIVATE "-framework CoreFoundation")
4344
endif(APPLE)
4445

llvm/tools/dsymutil/dsymutil.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ getOutputFileName(StringRef InputFile, const DsymutilOptions &Options) {
595595
return OutputLocation(std::string(Path.str()), ResourceDir);
596596
}
597597

598-
int main(int argc, char **argv) {
598+
int dsymutil_main(int argc, char **argv, const llvm::ToolContext &) {
599599
InitLLVM X(argc, argv);
600600

601601
// Parse arguments.

llvm/tools/llvm-debuginfod/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,13 @@ add_llvm_tool(llvm-debuginfod
1111

1212
DEPENDS
1313
DebugInfodOptsTableGen
14+
GENERATE_DRIVER
1415
)
15-
target_link_libraries(llvm-debuginfod PRIVATE LLVMDebuginfod)
16+
17+
if(NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
18+
target_link_libraries(llvm-debuginfod PRIVATE LLVMDebuginfod)
19+
endif()
20+
1621
if(LLVM_INSTALL_BINUTILS_SYMLINKS)
1722
add_llvm_tool_symlink(debuginfod llvm-debuginfod)
1823
endif()

llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "llvm/Option/Option.h"
2424
#include "llvm/Support/CommandLine.h"
2525
#include "llvm/Support/InitLLVM.h"
26+
#include "llvm/Support/LLVMDriver.h"
2627
#include "llvm/Support/ThreadPool.h"
2728

2829
using namespace llvm;
@@ -119,7 +120,7 @@ static void parseArgs(int argc, char **argv) {
119120
HostInterface = Args.getLastArgValue(OPT_host_interface, "0.0.0.0");
120121
}
121122

122-
int main(int argc, char **argv) {
123+
int llvm_debuginfod_main(int argc, char **argv, const llvm::ToolContext &) {
123124
InitLLVM X(argc, argv);
124125
HTTPClient::initialize();
125126
parseArgs(argc, argv);

llvm/tools/llvm-driver/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ target_sources(llvm-driver PRIVATE llvm-driver.cpp)
2525
set_target_properties(llvm-driver PROPERTIES OUTPUT_NAME llvm)
2626

2727
target_link_libraries(llvm-driver PUBLIC ${LLVM_DRIVER_OBJLIBS})
28+
target_link_libraries(llvm-driver PUBLIC LLVMDebuginfod)
29+
30+
if(LLVM_HAVE_LIBXAR)
31+
# used by llvm-objdump
32+
target_link_libraries(llvm-driver PUBLIC ${XAR_LIB})
33+
endif()
2834

2935
if(APPLE)
3036
# dsymutil uses some CoreFoundation stuff on Darwin...

llvm/tools/llvm-ml/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,7 @@ add_public_tablegen_target(MLTableGen)
1818
add_llvm_tool(llvm-ml
1919
llvm-ml.cpp
2020
Disassembler.cpp
21+
DEPENDS
22+
MLTableGen
23+
GENERATE_DRIVER
2124
)

llvm/tools/llvm-ml/llvm-ml.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "llvm/Support/FormatVariadic.h"
3636
#include "llvm/Support/FormattedStream.h"
3737
#include "llvm/Support/InitLLVM.h"
38+
#include "llvm/Support/LLVMDriver.h"
3839
#include "llvm/Support/MemoryBuffer.h"
3940
#include "llvm/Support/Path.h"
4041
#include "llvm/Support/Process.h"
@@ -185,7 +186,7 @@ static int AssembleInput(StringRef ProgName, const Target *TheTarget,
185186
return Res;
186187
}
187188

188-
int main(int Argc, char **Argv) {
189+
int llvm_ml_main(int Argc, char **Argv, const llvm::ToolContext &) {
189190
InitLLVM X(Argc, Argv);
190191
StringRef ProgName = sys::path::filename(Argv[0]);
191192

llvm/tools/llvm-objdump/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,14 @@ add_llvm_tool(llvm-objdump
3434
DEPENDS
3535
ObjdumpOptsTableGen
3636
OtoolOptsTableGen
37+
GENERATE_DRIVER
3738
)
3839

39-
target_link_libraries(llvm-objdump PRIVATE LLVMDebuginfod)
40+
if(NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
41+
target_link_libraries(llvm-objdump PRIVATE LLVMDebuginfod)
42+
endif()
4043

41-
if(LLVM_HAVE_LIBXAR)
44+
if(LLVM_HAVE_LIBXAR AND NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
4245
target_link_libraries(llvm-objdump PRIVATE ${XAR_LIB})
4346
endif()
4447

llvm/tools/llvm-objdump/llvm-objdump.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
#include "llvm/Support/FormatVariadic.h"
7474
#include "llvm/Support/GraphWriter.h"
7575
#include "llvm/Support/InitLLVM.h"
76+
#include "llvm/Support/LLVMDriver.h"
7677
#include "llvm/Support/MemoryBuffer.h"
7778
#include "llvm/Support/SourceMgr.h"
7879
#include "llvm/Support/StringSaver.h"
@@ -3247,7 +3248,7 @@ static void parseObjdumpOptions(const llvm::opt::InputArgList &InputArgs) {
32473248
InputFilenames.push_back("a.out");
32483249
}
32493250

3250-
int main(int argc, char **argv) {
3251+
int llvm_objdump_main(int argc, char **argv, const llvm::ToolContext &) {
32513252
using namespace llvm;
32523253
InitLLVM X(argc, argv);
32533254

llvm/tools/llvm-symbolizer/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ add_llvm_tool(llvm-symbolizer
2020

2121
DEPENDS
2222
SymbolizerOptsTableGen
23+
GENERATE_DRIVER
2324
)
2425

25-
target_link_libraries(llvm-symbolizer PRIVATE LLVMDebuginfod)
26+
if(NOT LLVM_TOOL_LLVM_DRIVER_BUILD)
27+
target_link_libraries(llvm-symbolizer PRIVATE LLVMDebuginfod)
28+
endif()
2629

2730
add_llvm_tool_symlink(llvm-addr2line llvm-symbolizer)
2831

llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "llvm/Support/Debug.h"
3535
#include "llvm/Support/FileSystem.h"
3636
#include "llvm/Support/InitLLVM.h"
37+
#include "llvm/Support/LLVMDriver.h"
3738
#include "llvm/Support/Path.h"
3839
#include "llvm/Support/StringSaver.h"
3940
#include "llvm/Support/WithColor.h"
@@ -395,7 +396,7 @@ static void filterMarkup(const opt::InputArgList &Args, LLVMSymbolizer &Symboliz
395396
Filter.finish();
396397
}
397398

398-
int main(int argc, char **argv) {
399+
int llvm_symbolizer_main(int argc, char **argv, const llvm::ToolContext &) {
399400
InitLLVM X(argc, argv);
400401
sys::InitializeCOMRAII COM(sys::COMThreadingMode::MultiThreaded);
401402

0 commit comments

Comments
 (0)