svn commit: r327783 - head/share/mk
Adrian Chadd
adrian.chadd at gmail.com
Sat Jan 13 03:41:50 UTC 2018
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 at 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
>
More information about the svn-src-head
mailing list