@@ -449,14 +449,20 @@ if(NOT DEFINED LDC_WITH_LLD)
449449        endif ()
450450        unset (CMAKE_REQUIRED_FLAGS)
451451        unset (CMAKE_REQUIRED_INCLUDES)
452+         # translate 1/0 to ON/OFF 
453+         if (LDC_WITH_LLD)
454+             set (LDC_WITH_LLD ON )
455+         else ()
456+             set (LDC_WITH_LLD OFF )
457+         endif ()
452458    else ()
453459        set (LDC_WITH_LLD OFF )
454460    endif ()
455461endif ()
456462if (LDC_WITH_LLD)
457-     message (STATUS  "Building LDC with LLD support" )
458463    append ("-DLDC_WITH_LLD"  LDC_CXXFLAGS)
459464endif ()
465+ message (STATUS  "Building LDC with integrated LLD: ${LDC_WITH_LLD}  (LDC_WITH_LLD=${LDC_WITH_LLD} )" )
460466
461467# 
462468# Enable building with riscv-llvm, for full RISC-V support. 
@@ -560,21 +566,23 @@ add_custom_target(${LDMD_EXE} ALL DEPENDS ${LDMD_EXE_FULL})
560566
561567# Figure out how to link the main LDC executable, for which we need to take the 
562568# LLVM flags into account. 
563- set (LDC_LINKERFLAG_LIST " ${SANITIZE_LDFLAGS} ; ${LLVM_LIBRARIES} ; ${LLVM_LDFLAGS} " 
569+ set (LDC_LINKERFLAG_LIST ${SANITIZE_LDFLAGS}   ${LLVM_LIBRARIES}   ${LLVM_LDFLAGS} )
564570if (LDC_WITH_LLD)
571+     # ELF and Mach-O formats supported since LLD 6.0.0, otherwise just Windows COFF 
565572    if (NOT  (LDC_LLVM_VER LESS  600))
566573        if (MSVC )
567-             list (APPEND  LDC_LINKERFLAG_LIST lldCOFF.lib lldCommon.lib lldCore.lib lldDriver.lib)
568-         elseif (APPLE )
569-             set (LDC_LINKERFLAG_LIST "-llldCOFF;-llldCommon;-llldCore;-llldDriver;${LDC_LINKERFLAG_LIST} ;-lxml2" )
574+             set (LDC_LINKERFLAG_LIST lldDriver.lib lldCOFF.lib lldELF.lib lldMachO.lib lldYAML.lib lldReaderWriter.lib lldCommon.lib lldCore.lib ${LDC_LINKERFLAG_LIST} )
570575        else ()
571-             set (LDC_LINKERFLAG_LIST "-llldCOFF;-llldCommon;-llldCore;-llldDriver;${LDC_LINKERFLAG_LIST} " )
576+             set (LDC_LINKERFLAG_LIST -llldDriver -llldCOFF -llldELF -llldMachO -llldYAML -llldReaderWriter -llldCommon -llldCore ${LDC_LINKERFLAG_LIST} )
577+         endif ()
578+         if (APPLE ) # bug, should be fixed in LLVM 6.0.1 
579+             list (APPEND  LDC_LINKERFLAG_LIST -lxml2)
572580        endif ()
573581    else ()
574582        if (MSVC )
575-             list  ( APPEND   LDC_LINKERFLAG_LIST lldCOFF.lib lldCore.lib lldDriver.lib)
583+             set  ( LDC_LINKERFLAG_LIST lldCOFF.lib lldCore.lib lldDriver.lib  ${LDC_LINKERFLAG_LIST} )
576584        else ()
577-             set (LDC_LINKERFLAG_LIST " -llldCOFF; -llldCore; -llldDriver; ${LDC_LINKERFLAG_LIST} " 
585+             set (LDC_LINKERFLAG_LIST -llldCOFF  -llldCore  -llldDriver  ${LDC_LINKERFLAG_LIST} )
578586        endif ()
579587    endif ()
580588endif ()
@@ -593,7 +601,7 @@ if(LDC_ENABLE_PLUGINS)
593601        set (LDC_LINKERFLAG_LIST "${LDC_LINKERFLAG_LIST} ;-Wl,--export-dynamic" )
594602    endif ()
595603endif ()
596- message (STATUS  "Building LDC with plugin support ${LDC_ENABLE_PLUGINS}  (LDC_ENABLE_PLUGINS=${LDC_ENABLE_PLUGINS} )" )
604+ message (STATUS  "Building LDC with plugin support:  ${LDC_ENABLE_PLUGINS}  (LDC_ENABLE_PLUGINS=${LDC_ENABLE_PLUGINS} )" )
597605
598606set (LDC_LINK_MANUALLY OFF )
599607if (UNIX  AND  (CMAKE_COMPILER_IS_GNUCXX OR  (${CMAKE_CXX_COMPILER_ID}  MATCHES  "Clang" )))
0 commit comments