From 737872e9788b817e60093243305796fce8b3aec9 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Wed, 25 Jan 2017 21:05:48 +0000 Subject: [PATCH] Also apply WITH_LLD_AS_LD to build tools Previously WITH_LLD_AS_LD installed LLD as /usr/bin/ld in the target system, but still used the GNU BFD ld to link the binaries in that target. LLD 4.0.0 can link the FreeBSD/amd64 world and kernel so use LLD as the build-time linker as well when the knob is set. Reviewed by: dim Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D9226 --- Makefile.inc1 | 6 +++++- lib/clang/libllvm/Makefile | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 3decab02b856..c1dcc30211ed 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -516,7 +516,7 @@ TMAKE= MAKEOBJDIRPREFIX=${OBJTREE} \ # cross-tools stage XMAKE= TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \ TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \ - MK_GDB=no MK_TESTS=no MK_LLD_AS_LD=no + MK_GDB=no MK_TESTS=no # kernel-tools stage KTMAKEENV= INSTALL="sh ${.CURDIR}/tools/install.sh" \ @@ -1827,6 +1827,9 @@ _elftctools= lib/libelftc \ # cross-build on a FreeBSD 10 host: _elftctools+= usr.bin/addr2line .endif +.if ${MK_LLD_AS_LD} != "no" +_lld= usr.bin/clang/lld +.endif .elif ${TARGET_ARCH} != ${MACHINE_ARCH} && ${MK_ELFTOOLCHAIN_BOOTSTRAP} != "no" # If cross-building with an external binutils we still need to build strip for # the target (for at least crunchide). @@ -1851,6 +1854,7 @@ cross-tools: .MAKE .PHONY ${LOCAL_XTOOL_DIRS} \ ${_clang_libs} \ ${_clang} \ + ${_lld} \ ${_binutils} \ ${_elftctools} \ ${_dtrace_tools} \ diff --git a/lib/clang/libllvm/Makefile b/lib/clang/libllvm/Makefile index 112664f5191e..c3d54a6cf99a 100644 --- a/lib/clang/libllvm/Makefile +++ b/lib/clang/libllvm/Makefile @@ -1146,7 +1146,7 @@ SRCS_MIN+= Transforms/Vectorize/SLPVectorizer.cpp SRCS_EXT+= Transforms/Vectorize/Vectorize.cpp SRCS_ALL+= ${SRCS_MIN} -.if !defined(TOOLS_PREFIX) +.if !defined(TOOLS_PREFIX) || ${MK_LLD_AS_LD} != "no" SRCS_ALL+= ${SRCS_MIW} .endif .if ${MK_CLANG_EXTRAS} != "no"