diff --git a/lld/CMakeLists.txt b/lld/CMakeLists.txt --- a/lld/CMakeLists.txt +++ b/lld/CMakeLists.txt @@ -174,6 +174,12 @@ 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. diff --git a/lld/tools/lld/lld.cpp b/lld/tools/lld/lld.cpp --- a/lld/tools/lld/lld.cpp +++ b/lld/tools/lld/lld.cpp @@ -92,7 +92,12 @@ continue; return isPETargetName(*(it + 1)); } + +#ifdef LLD_DEFAULT_LD_LLD_IS_MINGW + return true; +#else return false; +#endif } static Flavor parseProgname(StringRef progname) {