[PATCH] D28738: Add a LLVM_USE_LINKER that defines the linker to use when building LLVM
Mehdi AMINI via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Jan 14 19:32:33 PST 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL292047: Add a LLVM_USE_LINKER that defines the linker to use when building LLVM (authored by mehdi_amini).
Changed prior to commit:
https://reviews.llvm.org/D28738?vs=84475&id=84477#toc
Repository:
rL LLVM
https://reviews.llvm.org/D28738
Files:
llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
llvm/trunk/docs/CMake.rst
Index: llvm/trunk/docs/CMake.rst
===================================================================
--- llvm/trunk/docs/CMake.rst
+++ llvm/trunk/docs/CMake.rst
@@ -382,6 +382,18 @@
lines, enabling link-time optimization. Possible values are ``Off``,
``On``, ``Thin`` and ``Full``. Defaults to OFF.
+**LLVM_USE_LINKER**:STRING
+ Add ``-fuse-ld={name}`` to the link invocation. The possible value depend on
+ your compiler, for clang the value can be an absolute path to your custom
+ linker, otherwise clang will prefix the name with ``ld.`` and apply its usual
+ search. For example to link LLVM with the Gold linker, cmake can be invoked
+ with ``-DLLVM_USE_LINKER=gold``.
+
+**LLVM_ENABLE_LLD**:BOOL
+ This option is equivalent to `-DLLVM_USE_LINKER=lld`, except during a 2-stage
+ build where a dependency is added from the first stage to the second ensuring
+ that lld is built before stage2 begins.
+
**LLVM_PARALLEL_COMPILE_JOBS**:STRING
Define the maximum number of concurrent compilation jobs.
Index: llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
===================================================================
--- llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
+++ llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
@@ -147,9 +147,19 @@
endif()
endfunction()
-if(LLVM_ENABLE_LLD)
- check_cxx_compiler_flag("-fuse-ld=lld" CXX_SUPPORTS_LLD)
- append_if(CXX_SUPPORTS_LLD "-fuse-ld=lld"
+if( LLVM_ENABLE_LLD )
+ if ( LLVM_USE_LINKER )
+ message(FATAL_ERROR "LLVM_ENABLE_LLD and LLVM_USE_LINKER can't be set at the same time")
+ endif()
+ set(LLVM_USE_LINKER "lld")
+endif()
+
+if( LLVM_USE_LINKER )
+ check_cxx_compiler_flag("-fuse-ld=${LLVM_USE_LINKER}" CXX_SUPPORTS_CUSTOM_LINKER)
+ if ( NOT CXX_SUPPORTS_CUSTOM_LINKER )
+ message(FATAL_ERROR "Host compiler does not support '-fuse-ld=${LLVM_USE_LINKER}'")
+ endif()
+ append("-fuse-ld=${LLVM_USE_LINKER}"
CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
endif()
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28738.84477.patch
Type: text/x-patch
Size: 2000 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170115/0b5f237f/attachment.bin>
More information about the llvm-commits
mailing list