llvm-project/llvm/lib/Support/Windows
Chris Bieneman f06abbb393 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
2022-06-06 04:27:32 +00:00
..
COM.inc
DynamicLibrary.inc
Host.inc [NFC] Fix build when LLVM_DEFAULT_TARGET_TRIPLE="" 2022-01-31 13:31:55 -06:00
Memory.inc
Path.inc LLVM Driver Multicall tool 2022-06-06 04:27:32 +00:00
Process.inc [Windows] Don't try to wildcard expand paths starting with \\?\ 2022-06-01 11:25:49 +03:00
Program.inc Cleanup include: TableGen 2022-03-11 11:41:32 +01:00
Signals.inc [Support] Don't print stacktrace if DbgHelp.dll hasn't been loaded yet 2022-02-08 16:37:36 +00:00
ThreadLocal.inc
Threading.inc Add ThreadPriority::Low, and use QoS class Utility on Mac 2022-05-16 10:01:49 +02:00
Watchdog.inc
explicit_symbols.inc