Migrating arm(v7) to LLD_BOOTSTRAP

Warner Losh imp at bsdimp.com
Wed Jan 17 01:41:26 UTC 2018


On Tue, Jan 16, 2018 at 4:45 PM, Ed Maste <emaste at freebsd.org> wrote:

> With the update to Clang/LLVM/lld 6.0.0 I believe lld is nearly ready
> to be used as the system linker for armv7, and I plan to enable
> LLD_BOOTSTRAP by default after a couple of WIP patches land and after
> a little more testing. This may happen a week or two from now. This
> should have little impact on port builds, because /usr/bin/ld will
> still be GNU ld.bfd (although there may be some unexpected fallout).
>
> I expect to enable LLD_IS_LD by default a little later, and
> /usr/bin/ld will then be lld. This is the same path we're taking with
> amd64.
>
> lld currently does not support architectures prior to armv7, and fails
> with some combination of these errors when I try to use it for
> arm{,v5,v6,eb}:
>
> ld: error: lld uses blx instruction, no object with architecture
> supporting feature detected.
> ld: error: lld uses extended branch encoding, no object with
> architecture supporting feature detected.
> ld: error: lld may use movt/movw, no object with architecture
> supporting feature detected.
>
> I expect this will be addressed in a future version of lld.
>

At least some of that is due to the gap size that's defined for all of ARM.
With a smaller gap size, the trampolines will work better on older ARM
gear....

Warner


More information about the freebsd-toolchain mailing list