[PATCH] D22896: [LLVM] Add LLVM_ENABLE_LLD option to use LLD as C/C++ linker.
Eugene Zelenko via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 28 16:52:52 PDT 2016
Eugene.Zelenko updated this revision to Diff 66060.
Eugene.Zelenko added a comment.
Also use LLD for CMAKE_MODULE_LINKER_FLAGS.
Repository:
rL LLVM
https://reviews.llvm.org/D22896
Files:
CMakeLists.txt
cmake/modules/HandleLLVMOptions.cmake
Index: cmake/modules/HandleLLVMOptions.cmake
===================================================================
--- cmake/modules/HandleLLVMOptions.cmake
+++ cmake/modules/HandleLLVMOptions.cmake
@@ -12,7 +12,6 @@
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
-
if (CMAKE_LINKER MATCHES "lld-link.exe")
# Pass /MANIFEST:NO so that CMake doesn't run mt.exe on our binaries. Adding
# manifests with mt.exe breaks LLD's symbol tables and takes as much time as
@@ -109,7 +108,6 @@
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,defs")
endif()
-
function(append value)
foreach(variable ${ARGN})
set(${variable} "${${variable}} ${value}" PARENT_SCOPE)
@@ -144,6 +142,12 @@
endif()
endfunction()
+if(LLVM_ENABLE_LLD)
+ check_cxx_compiler_flag("-fuse-ld=lld" CXX_SUPPORTS_LLD)
+ append_if(CXX_SUPPORTS_LLD "-fuse-ld=lld"
+ CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
+endif()
+
if( LLVM_ENABLE_PIC )
if( XCODE )
# Xcode has -mdynamic-no-pic on by default, which overrides -fPIC. I don't
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -317,6 +317,7 @@
option(LLVM_ENABLE_CXX1Y "Compile with C++1y enabled." OFF)
option(LLVM_ENABLE_LIBCXX "Use libc++ if available." OFF)
option(LLVM_ENABLE_LIBCXXABI "Use libc++abi when using libc++." OFF)
+option(LLVM_ENABLE_LLD "Use lld as C and C++ linker." OFF)
option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)
option(LLVM_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22896.66060.patch
Type: text/x-patch
Size: 1632 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160728/138f7deb/attachment.bin>
More information about the llvm-commits
mailing list