diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt --- a/clang/tools/libclang/CMakeLists.txt +++ b/clang/tools/libclang/CMakeLists.txt @@ -66,9 +66,8 @@ endif () endif () -find_library(DL_LIBRARY_PATH dl) -if (DL_LIBRARY_PATH) - list(APPEND LIBS dl) +if (HAVE_LIBDL) + list(APPEND LIBS ${CMAKE_DL_LIBS}) endif() option(LIBCLANG_BUILD_STATIC diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -1868,7 +1868,7 @@ if(NOT ARG_OUTPUT_DIR) # If you're not overriding the OUTPUT_DIR, we can make the link relative in # the same directory. - if(CMAKE_HOST_UNIX) + if(CMAKE_HOST_UNIX AND NOT MINGW) set(dest_binary "$") endif() if(CMAKE_CONFIGURATION_TYPES) @@ -1894,7 +1894,7 @@ endif() endif() - if(CMAKE_HOST_UNIX) + if(CMAKE_HOST_UNIX AND NOT MINGW) set(LLVM_LINK_OR_COPY create_symlink) else() set(LLVM_LINK_OR_COPY copy) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -953,6 +953,8 @@ # time a little since we re-link a lot of the same objects, and significantly # improves incremental build time. # FIXME: We should move all this logic into the clang driver. + # + # FIXME; mingw lld driver doesn't support any of the options below if(APPLE) append("-Wl,-cache_path_lto,${PROJECT_BINARY_DIR}/lto.cache" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) @@ -962,7 +964,7 @@ elseif(LLVM_USE_LINKER STREQUAL "gold") append("-Wl,--plugin-opt,cache-dir=${PROJECT_BINARY_DIR}/lto.cache" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) - elseif(LINKER_IS_LLD_LINK) + elseif(LINKER_IS_LLD_LINK AND NOT MINGW) append("/lldltocache:${PROJECT_BINARY_DIR}/lto.cache" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) endif()