freebsd-nq/share/mk
Ed Maste 93b7a1c153 Enable ld.lld as bootstrap linker by default on amd64
For some time we have been planning to migrate to LLVM's lld linker.
Having a man page was the last blocking issue for using ld.lld to link
the base system kernel + userland, now addressed by r327770.  Link the
kernel and userland libraries and binaries with ld.lld by default, for
additional test coverage.

This has been a long time in the making.  On 2013-04-13 I submitted an
upstream tracking issue in LLVM PR 23214: [META] Using LLD as FreeBSD's
system linker.  Since then 85 individual issues were identified, and
submitted as dependencies.  These have been addressed along with two
and a half years of other lld development and improvement.

I'd like to express deep gratitude to upstream lld developers Rui
Ueyama, Rafael Espindola, George Rimar and Davide Italiano.  They put in
substantial effort in addressing the issues we found affecting
FreeBSD/amd64.

To revert to using ld.bfd as the bootstrap linker, in /etc/src.conf set

    WITHOUT_LLD_BOOTSTRAP=yes

If you need to set this, please follow up with a PR or post to the
freebsd-toolchain mailing list explaining how default WITH_LLD_BOOTSTRAP
failed for your use case.

Note that GNU ld.bfd is still installed as /usr/bin/ld, and will still
be used for linking ports.  ld.lld can be installed as /usr/bin/ld by
setting in /etc/src.conf

    WITH_LLD_IS_LLD=yes

A followup commit will set WITH_LLD_IS_LD by default, possibly after
Clang/LLVM/lld 6.0 is merged to FreeBSD.

Release notes:	Yes
Sponsored by:	The FreeBSD Foundation
2018-01-10 20:28:01 +00:00
..
atf.test.mk
auto.obj.mk Ensure .OBJDIR has known value 2017-11-04 21:02:26 +00:00
bsd.arch.inc.mk
bsd.clang-analyze.mk Add some missed OBJS_SRCS_FILTER from r323637. 2017-11-10 08:00:09 +00:00
bsd.compiler.mk
bsd.confs.mk
bsd.cpu.mk Add -mno-avx2 for clang as well as -mno-avx. We don't want either of 2017-11-20 22:41:22 +00:00
bsd.crunchgen.mk No need to run 'make depend' with FAST_DEPEND logic in-tree. 2017-11-10 19:53:17 +00:00
bsd.dep.mk Fix DPSRCS not getting .depend.* files. 2017-12-05 02:23:33 +00:00
bsd.doc.mk
bsd.dtb.mk
bsd.endian.mk
bsd.files.mk
bsd.incs.mk Reapply r295227: Stop hiding link install commands. 2017-11-06 19:33:50 +00:00
bsd.info.mk
bsd.init.mk Handle some .OBJDIR == .CURDIR cases. 2017-11-10 02:09:33 +00:00
bsd.kmod.mk
bsd.lib.mk Remove build system support for lint. 2017-11-17 18:16:46 +00:00
bsd.libnames.mk Merge ^/head r325663 through r325841. 2017-11-15 11:28:11 +00:00
bsd.linker.mk
bsd.links.mk Reapply r295227: Stop hiding link install commands. 2017-11-06 19:33:50 +00:00
bsd.man.mk
bsd.mkopt.mk
bsd.nls.mk
bsd.obj.mk AUTO_OBJ: Don't create nested OBJDIRS with print-dir or make -n. 2017-12-06 21:00:41 +00:00
bsd.opts.mk Add MK_MAKE_CHECK_WITH_COVERAGE, reliant on MK_COVERAGE and MK_MAKE_CHECK_USE_SANDBOX 2017-10-31 06:16:40 +00:00
bsd.own.mk Remove build system support for lint. 2017-11-17 18:16:46 +00:00
bsd.port.mk
bsd.port.options.mk
bsd.port.post.mk
bsd.port.pre.mk
bsd.port.subdir.mk
bsd.prog.mk Remove build system support for lint. 2017-11-17 18:16:46 +00:00
bsd.progs.mk Add some missed OBJS_SRCS_FILTER from r323637. 2017-11-10 08:00:09 +00:00
bsd.README Remove build system support for lint. 2017-11-17 18:16:46 +00:00
bsd.snmpmod.mk
bsd.stand.mk
bsd.subdir.mk Remove build system support for lint. 2017-11-17 18:16:46 +00:00
bsd.suffixes-posix.mk
bsd.suffixes.mk Remove build system support for lint. 2017-11-17 18:16:46 +00:00
bsd.symver.mk
bsd.sys.mk Follow-up to r326375, by moving the block that disables errors on the 2017-12-24 16:34:54 +00:00
bsd.test.mk
dirdeps.mk
gendirdeps.mk
host-target.mk
install-new.mk
local.autodep.mk
local.dirdeps.mk DIRDEPS_BUILD: Cleanup leftover WORLDTMP files. 2017-11-02 20:45:04 +00:00
local.gendirdeps.mk DIRDEPS_BUILD: libgcc now depends on MK_LLVM_LIBUNWIND 2017-10-31 00:03:36 +00:00
local.init.mk
local.meta.sys.mk Add option UNIFIED_OBJDIR, on by default, which moves the default build OBJDIR. 2017-11-01 21:22:05 +00:00
local.sys.env.mk AUTO_OBJ: Hide 'creating dirs' output with 'make -s'. 2017-11-08 16:03:58 +00:00
local.sys.mk
Makefile
meta2deps.py
meta2deps.sh
meta.autodep.mk
meta.stage.mk
meta.subdir.mk
meta.sys.mk
netbsd-tests.test.mk
plain.test.mk
src.init.mk
src.libnames.mk Look for libraries in OBJDIR when building outside of buildworld. 2017-12-07 16:37:19 +00:00
src.opts.mk Enable ld.lld as bootstrap linker by default on amd64 2018-01-10 20:28:01 +00:00
src.sys.env.mk Deal with bmake-20170301 no longer resolving -C like it used to. 2017-12-05 21:30:22 +00:00
src.sys.mk Enable AUTO_OBJ by default if the OBJDIR is writable, only for in-tree builds. 2017-11-02 18:09:07 +00:00
src.sys.obj.mk Handle writable-but-not-a-directory cases for writable OBJDIR check. 2017-12-05 21:30:17 +00:00
stage-install.sh
suite.test.mk MFhead@r325422 2017-11-05 04:08:00 +00:00
sys.dependfile.mk
sys.mk Remove build system support for lint. 2017-11-17 18:16:46 +00:00
tap.test.mk
version_gen.awk share and pc-sysinstall: adoption of SPDX licensing ID tags. 2017-11-27 15:28:26 +00:00