Date: Fri, 12 Jan 2018 19:41:45 -0800 From: Adrian Chadd <adrian.chadd@gmail.com> To: John Baldwin <jhb@freebsd.org> Cc: Ed Maste <emaste@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r327783 - head/share/mk Message-ID: <CAJ-Vmokfan7EupkkNpoGqmofhPYr_PpB5Rwnp2Nqm-cRk0M7ZA@mail.gmail.com> In-Reply-To: <3584752.ozb5ohFTAi@ralph.baldwin.cx> References: <201801102028.w0AKS1UA000454@repo.freebsd.org> <3584752.ozb5ohFTAi@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
hi, can we just flip the switch back for now until it's figured out? Some of us have to like, do development on -HEAD for fun. :) -a On 12 January 2018 at 17:46, John Baldwin <jhb@freebsd.org> wrote: > On Wednesday, January 10, 2018 08:28:01 PM Ed Maste wrote: >> 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 > > FYI, due to a quirk of how we load kernel modules on amd64 in such a way that > doesn't really honor the ELF spec (but is self-consistent in the kernel and > loader) and the fact that LLD doesn't sort sections the way BFD does, this > change has confused kgdb such that it can compute different address for > symbols. I dont think i386 is affected, only amd64. I've started on a fix, > but my first attempt to boot it resulted in no modules loading anymore and > it's time to go home for the day. :-P I'll try to resolve this early next > week. If you need to use kgdb on amd64 with kernel modules, you will have > to build with an external toolchain (the old ld.bfd can't cope with the > kernel ifunc stuff). > > -- > John Baldwin >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmokfan7EupkkNpoGqmofhPYr_PpB5Rwnp2Nqm-cRk0M7ZA>