mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-06 19:06:02 +03:00
Add support for LLD 6.0.0
This commit is contained in:
parent
63034ae1ca
commit
f5f17bee6f
2 changed files with 24 additions and 4 deletions
|
@ -428,7 +428,11 @@ if(NOT DEFINED LDC_WITH_LLD)
|
|||
set(CMAKE_REQUIRED_FLAGS -std=c++11)
|
||||
endif()
|
||||
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIRS})
|
||||
if(NOT (LDC_LLVM_VER LESS 600))
|
||||
CHECK_INCLUDE_FILE_CXX(lld/Common/Driver.h LDC_WITH_LLD)
|
||||
else()
|
||||
CHECK_INCLUDE_FILE_CXX(lld/Driver/Driver.h LDC_WITH_LLD)
|
||||
endif()
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
unset(CMAKE_REQUIRED_INCLUDES)
|
||||
else()
|
||||
|
@ -544,12 +548,20 @@ add_custom_target(${LDMD_EXE} ALL DEPENDS ${LDMD_EXE_FULL})
|
|||
# LLVM flags into account.
|
||||
set(LDC_LINKERFLAG_LIST "${SANITIZE_LDFLAGS};${LLVM_LIBRARIES};${LLVM_LDFLAGS}")
|
||||
if(LDC_WITH_LLD)
|
||||
if(NOT (LDC_LLVM_VER LESS 600))
|
||||
if(MSVC)
|
||||
list(APPEND LDC_LINKERFLAG_LIST lldCOFF.lib lldCommon.lib lldCore.lib lldDriver.lib LLVMWindowsManifest.lib)
|
||||
else()
|
||||
set(LDC_LINKERFLAG_LIST "-llldCOFF;-llldCommon;-llldCore;-llldDriver;-lLLVMWindowsManifest;${LDC_LINKERFLAG_LIST}")
|
||||
endif()
|
||||
else()
|
||||
if(MSVC)
|
||||
list(APPEND LDC_LINKERFLAG_LIST lldCOFF.lib lldCore.lib lldDriver.lib)
|
||||
else()
|
||||
set(LDC_LINKERFLAG_LIST "-llldCOFF;-llldCore;-llldDriver;${LDC_LINKERFLAG_LIST}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Plugin support
|
||||
if(UNIX)
|
||||
|
|
|
@ -18,8 +18,12 @@
|
|||
#include "llvm/Support/FileSystem.h"
|
||||
|
||||
#if LDC_WITH_LLD
|
||||
#if LDC_LLVM_VER >= 600
|
||||
#include "lld/Common/Driver.h"
|
||||
#else
|
||||
#include "lld/Driver/Driver.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -194,7 +198,11 @@ int linkObjToBinaryMSVC(llvm::StringRef outputPath, bool useInternalLinker,
|
|||
const auto fullArgs =
|
||||
getFullArgs("lld-link.exe", args, global.params.verbose);
|
||||
|
||||
#if LDC_LLVM_VER >= 600
|
||||
const bool success = lld::coff::link(fullArgs, /*CanExitEarly=*/false);
|
||||
#else
|
||||
const bool success = lld::coff::link(fullArgs);
|
||||
#endif
|
||||
if (!success)
|
||||
error(Loc(), "linking with LLD failed");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue