From 02af30a94970b343ab052cab5166b2140b7071b8 Mon Sep 17 00:00:00 2001 From: Shoaib Meenai Date: Sat, 2 Jun 2018 01:22:39 +0000 Subject: [PATCH] [cmake] Support LLD for CLANG_ORDER_FILE LLD also supports order files using the `--symbol-ordering-file` option. As the name would suggest, the order file format is slightly different from gold; gold's order files specify section names, whereas LLD's specify symbol names. Assuming you have an order file in the correct format though, we should support using it with LLD. Switch the check to actually use LLVM's linker detection rather than just checking for the presence of the gold executable, since we might have a gold executable present but be using LLD (or bfd for that matter) as our linker. Differential Revision: https://reviews.llvm.org/D47669 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@333810 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/driver/CMakeLists.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt index 133a449493..6e8748dd62 100644 --- a/tools/driver/CMakeLists.txt +++ b/tools/driver/CMakeLists.txt @@ -98,13 +98,16 @@ if (APPLE) set(TOOL_INFO_BUILD_VERSION) endif() -if(CLANG_ORDER_FILE AND (LD64_EXECUTABLE OR GOLD_EXECUTABLE)) +if(CLANG_ORDER_FILE AND + (LD64_EXECUTABLE OR LLVM_LINKER_IS_GOLD OR LLVM_LINKER_IS_LLD)) include(CheckLinkerFlag) if (LD64_EXECUTABLE) set(LINKER_ORDER_FILE_OPTION "-Wl,-order_file,${CLANG_ORDER_FILE}") - elseif (GOLD_EXECUTABLE) + elseif (LLVM_LINKER_IS_GOLD) set(LINKER_ORDER_FILE_OPTION "-Wl,--section-ordering-file,${CLANG_ORDER_FILE}") + elseif (LLVM_LINKER_IS_LLD) + set(LINKER_ORDER_FILE_OPTION "-Wl,--symbol-ordering-file,${CLANG_ORDER_FILE}") endif() # This is a test to ensure the actual order file works with the linker. -- 2.40.0