Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Apr 2017 01:35:19 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r316647 - in head: . share/mk tools/build/options
Message-ID:  <201704090135.v391ZJ6p064486@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Sun Apr  9 01:35:19 2017
New Revision: 316647
URL: https://svnweb.freebsd.org/changeset/base/316647

Log:
  Introduce LLD_BOOTSTRAP to control lld as bootstrap linker
  
  Add WITH_LLD_BOOTSTRAP and WITHOUT_LLD_BOOTSTRAP knobs, similar to the
  Clang bootstrap knobs.
  
  Reviewed by:	dim
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D10249

Added:
  head/tools/build/options/WITHOUT_LLD_BOOTSTRAP   (contents, props changed)
  head/tools/build/options/WITH_LLD_BOOTSTRAP   (contents, props changed)
Modified:
  head/Makefile.inc1
  head/share/mk/src.opts.mk

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Sat Apr  8 21:57:59 2017	(r316646)
+++ head/Makefile.inc1	Sun Apr  9 01:35:19 2017	(r316647)
@@ -171,7 +171,7 @@ CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN
 # riscv64-binutils port or package.
 .if !make(showconfig)
 .if !empty(BROKEN_OPTIONS:MBINUTILS_BOOTSTRAP) && \
-    ${MK_LLD_IS_LD} == "no" && \
+    ${MK_LLD_BOOTSTRAP} == "no" && \
     !defined(CROSS_BINUTILS_PREFIX)
 CROSS_BINUTILS_PREFIX=/usr/local/${TARGET_ARCH}-freebsd/bin/
 .if !exists(${CROSS_BINUTILS_PREFIX})
@@ -1665,9 +1665,10 @@ ${_bt}-usr.bin/yacc: ${_bt}-lib/liby
 _gensnmptree=	usr.sbin/bsnmpd/gensnmptree
 .endif
 
-# We need to build tblgen when we're building clang either as
-# the bootstrap compiler, or as the part of the normal build.
-.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_CLANG} != "no"
+# We need to build tblgen when we're building clang or lld, either as
+# bootstrap tools, or as the part of the normal build.
+.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_CLANG} != "no" || \
+    ${MK_LLD_BOOTSTRAP} != "no" || ${MK_LLD} != "no"
 _clang_tblgen= \
 	lib/clang/libllvmminimal \
 	usr.bin/clang/llvm-tblgen \
@@ -1828,9 +1829,6 @@ _elftctools=	lib/libelftc \
 # cross-build on a FreeBSD 10 host:
 _elftctools+=	usr.bin/addr2line
 .endif
-.if ${MK_LLD_IS_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).
@@ -1841,6 +1839,11 @@ _elftctools=	lib/libelftc \
 
 .if ${MK_CLANG_BOOTSTRAP} != "no"
 _clang=		usr.bin/clang
+.endif
+.if ${MK_LLD_BOOTSTRAP} != "no"
+_lld=		usr.bin/clang/lld
+.endif
+.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_LLD_BOOTSTRAP} != "no"
 _clang_libs=	lib/clang
 .endif
 .if ${MK_GCC_BOOTSTRAP} != "no"

Modified: head/share/mk/src.opts.mk
==============================================================================
--- head/share/mk/src.opts.mk	Sat Apr  8 21:57:59 2017	(r316646)
+++ head/share/mk/src.opts.mk	Sun Apr  9 01:35:19 2017	(r316647)
@@ -250,9 +250,9 @@ __DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND
 __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND
 .endif
 .if ${__T} == "aarch64"
-__DEFAULT_YES_OPTIONS+=LLD_IS_LD
+__DEFAULT_YES_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD
 .else
-__DEFAULT_NO_OPTIONS+=LLD_IS_LD
+__DEFAULT_NO_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD
 .endif
 .if ${__T} == "aarch64" || ${__T} == "amd64"
 __DEFAULT_YES_OPTIONS+=LLDB

Added: head/tools/build/options/WITHOUT_LLD_BOOTSTRAP
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITHOUT_LLD_BOOTSTRAP	Sun Apr  9 01:35:19 2017	(r316647)
@@ -0,0 +1,5 @@
+.\" $FreeBSD$
+Set to not build the LLD linker during the bootstrap phase of
+the build.
+To be able to build the system, either Binutils or LLD bootstrap must be
+enabled unless an alternate linker is provided via XLD.

Added: head/tools/build/options/WITH_LLD_BOOTSTRAP
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/tools/build/options/WITH_LLD_BOOTSTRAP	Sun Apr  9 01:35:19 2017	(r316647)
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Set to build the LLD linker during the bootstrap phase of the build.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704090135.v391ZJ6p064486>