summaryrefslogtreecommitdiff
path: root/lld/CMakeLists.txt
diff options
context:
space:
mode:
authorMateusz Mikuła <mati865@gmail.com>2020-09-15 08:39:15 +0300
committerMartin Storsjö <martin@martin.st>2020-09-15 08:50:02 +0300
commit61e0b2b4c5fbbea01bb40f28ea0222b87166ccdf (patch)
treebede1dc9b5244543a42c7ffaf093c744a8376f49 /lld/CMakeLists.txt
parent7b416c5e3683d7120e4ce390e669f89b6a72d423 (diff)
downloadllvm-61e0b2b4c5fbbea01bb40f28ea0222b87166ccdf.tar.gz
[LLD] Allow configuring default ld.lld backend
The motivation for this is ld.lld --help targeting MinGW which currently prints help for the ELF backend unless -m i386pe{,p} is added. This confuses build systems that grep through linker help to find supported flags. This matches LD from Binutils which always prints help for MinGW when configured to target it. After this change, the backend can still be overridden to any supported ELF/MinGW target by using correct -m <arch>. Differential Revision: https://reviews.llvm.org/D87418
Diffstat (limited to 'lld/CMakeLists.txt')
-rw-r--r--lld/CMakeLists.txt6
1 files changed, 6 insertions, 0 deletions
diff --git a/lld/CMakeLists.txt b/lld/CMakeLists.txt
index 34a7a68da42c..8b8c7178c616 100644
--- a/lld/CMakeLists.txt
+++ b/lld/CMakeLists.txt
@@ -174,6 +174,12 @@ endif()
option(LLD_BUILD_TOOLS
"Build the lld tools. If OFF, just generate build targets." ON)
+option(LLD_DEFAULT_LD_LLD_IS_MINGW
+ "Use MinGW as the default backend for ld.lld. If OFF, ELF will be used." OFF)
+if (LLD_DEFAULT_LD_LLD_IS_MINGW)
+ add_definitions("-DLLD_DEFAULT_LD_LLD_IS_MINGW=1")
+endif()
+
if (MSVC)
add_definitions(-wd4530) # Suppress 'warning C4530: C++ exception handler used, but unwind semantics are not enabled.'
add_definitions(-wd4062) # Suppress 'warning C4062: enumerator X in switch of enum Y is not handled' from system header.