From b67cb3cda05bb1fa08b4789423983a7ee3f3c5e4 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 5 Jun 2019 17:35:38 +0000 Subject: [PATCH] Use LTO capable linker Summary: In DistributionExample.cmake be sure we use a LTO capable linker, the easiest to choose is lld. Reviewers: beanz Reviewed By: beanz Patch By: winksaville Subscribers: mgorny, mehdi_amini, inglorion, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62279 llvm-svn: 362624 --- clang/cmake/caches/DistributionExample-stage2.cmake | 2 +- clang/cmake/caches/DistributionExample.cmake | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/clang/cmake/caches/DistributionExample-stage2.cmake b/clang/cmake/caches/DistributionExample-stage2.cmake index f4d5d92..99d5dc0 100644 --- a/clang/cmake/caches/DistributionExample-stage2.cmake +++ b/clang/cmake/caches/DistributionExample-stage2.cmake @@ -2,7 +2,7 @@ # bootstrap build. set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") -set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "") +set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64 CACHE STRING "") diff --git a/clang/cmake/caches/DistributionExample.cmake b/clang/cmake/caches/DistributionExample.cmake index 35493ed..50fcc09 100644 --- a/clang/cmake/caches/DistributionExample.cmake +++ b/clang/cmake/caches/DistributionExample.cmake @@ -2,7 +2,7 @@ #Enable LLVM projects and runtimes set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") -set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "") +set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") # Only build the native target in stage1 since it is a throwaway build. set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") @@ -17,6 +17,11 @@ set(PACKAGE_VENDOR LLVM.org CACHE STRING "") # the proper LTO library dependencies can be connected. set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") +if (NOT APPLE) + # Since LLVM_ENABLE_LTO is ON we need a LTO capable linker + set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") +endif() + # Expose stage2 targets through the stage1 build configuration. set(CLANG_BOOTSTRAP_TARGETS check-all -- 2.7.4