summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.inc120
-rw-r--r--UPDATING6
-rw-r--r--share/mk/src.opts.mk15
-rw-r--r--tools/build/options/WITHOUT_LLD_BOOTSTRAP5
-rw-r--r--tools/build/options/WITH_LLD_BOOTSTRAP2
5 files changed, 28 insertions, 20 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 1473be5..4995c24 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -195,10 +195,11 @@ CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN_PREFIX}
.endif
# If we do not have a bootstrap binutils (because the in-tree one does not
# support the target architecture), provide a default cross-binutils prefix.
-# This allows aarch64 builds, for example, to automatically use the
-# aarch64-binutils port or package.
+# This allows riscv64 builds, for example, to automatically use the
+# riscv64-binutils port or package.
.if !make(showconfig)
.if !empty(BROKEN_OPTIONS:MBINUTILS_BOOTSTRAP) && \
+ ${MK_LLD_BOOTSTRAP} == "no" && \
!defined(CROSS_BINUTILS_PREFIX)
CROSS_BINUTILS_PREFIX=/usr/local/${TARGET_ARCH}-freebsd/bin/
.if !exists(${CROSS_BINUTILS_PREFIX})
@@ -1666,9 +1667,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 \
@@ -1832,9 +1834,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).
@@ -1845,6 +1844,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"
diff --git a/UPDATING b/UPDATING
index 60ef4e3..916e3da 100644
--- a/UPDATING
+++ b/UPDATING
@@ -16,6 +16,12 @@ from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to
the tip of head, and then rebuild without this option. The bootstrap process
from older version of current across the gcc/clang cutover is a bit fragile.
+20170518:
+ arm64 builds now use the base system LLD 4.0.0 linker by default,
+ instead of requiring that the aarch64-binutils port or package be
+ installed. To continue using aarch64-binutils, set
+ CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
+
20170511:
The mmcsd.ko module now additionally depends on geom_flashmap.ko.
Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index 9bbbadd..9679722 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -247,9 +247,9 @@ BROKEN_OPTIONS+=TESTS # "undefined reference to `_Unwind_Resume'"
BROKEN_OPTIONS+=CXX # "libcxxrt.so: undefined reference to `_Unwind_Resume_or_Rethrow'"
.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
@@ -306,16 +306,6 @@ MK_LDNS_UTILS:= no
MK_UNBOUND:= no
.endif
-.if ${MK_LLD} == "no"
-MK_LLD_IS_LD:= no
-.endif
-
-# LLD requires LLVM libraries, and we do not yet compare in-tree and host LLD
-# versions to avoid building it if they are identical.
-.if ${MK_LLD_IS_LD} != "no"
-MK_SYSTEM_COMPILER:= no
-.endif
-
.if ${MK_SOURCELESS} == "no"
MK_SOURCELESS_HOST:= no
MK_SOURCELESS_UCODE:= no
@@ -383,6 +373,7 @@ MK_CLANG:= no
MK_GCC:= no
MK_GDB:= no
MK_INCLUDES:= no
+MK_LLD:= no
MK_LLDB:= no
.endif
diff --git a/tools/build/options/WITHOUT_LLD_BOOTSTRAP b/tools/build/options/WITHOUT_LLD_BOOTSTRAP
new file mode 100644
index 0000000..646edd3
--- /dev/null
+++ b/tools/build/options/WITHOUT_LLD_BOOTSTRAP
@@ -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.
diff --git a/tools/build/options/WITH_LLD_BOOTSTRAP b/tools/build/options/WITH_LLD_BOOTSTRAP
new file mode 100644
index 0000000..4977b97
--- /dev/null
+++ b/tools/build/options/WITH_LLD_BOOTSTRAP
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Set to build the LLD linker during the bootstrap phase of the build.
OpenPOWER on IntegriCloud