svn commit: r327783 - head/share/mk

Ed Maste emaste at FreeBSD.org
Wed Jan 10 20:28:02 UTC 2018


Author: emaste
Date: Wed Jan 10 20:28:01 2018
New Revision: 327783
URL: https://svnweb.freebsd.org/changeset/base/327783

Log:
  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

Modified:
  head/share/mk/src.opts.mk

Modified: head/share/mk/src.opts.mk
==============================================================================
--- head/share/mk/src.opts.mk	Wed Jan 10 20:05:19 2018	(r327782)
+++ head/share/mk/src.opts.mk	Wed Jan 10 20:28:01 2018	(r327783)
@@ -253,6 +253,9 @@ __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND
 .endif
 .if ${__T} == "aarch64"
 __DEFAULT_YES_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD
+.elif ${__T} == "amd64"
+__DEFAULT_YES_OPTIONS+=LLD_BOOTSTRAP
+__DEFAULT_NO_OPTIONS+=LLD_IS_LD
 .else
 __DEFAULT_NO_OPTIONS+=LLD_BOOTSTRAP LLD_IS_LD
 .endif


More information about the svn-src-head mailing list