Re: Migrating arm(v7) to LLD_BOOTSTRAP

2018-01-16 Thread Michal Meloun



On 17.01.2018 2:41, Warner Losh wrote:

On Tue, Jan 16, 2018 at 4:45 PM, Ed Maste  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.

But this means that we can not use lld for kernel module linking.
(assuming that lld can emits movt/movw with attached relocation).
To be more exact, not until we change format of kernel modules
from (many years outdated, -Bshareable without -fPIC) shared
library format to fully supported "combined object file" format.
Michal




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
___
freebsd-...@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "freebsd-arm-unsubscr...@freebsd.org"


___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


Re: Migrating arm(v7) to LLD_BOOTSTRAP

2018-01-16 Thread Warner Losh
On Tue, Jan 16, 2018 at 4:45 PM, Ed Maste  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
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


Migrating arm(v7) to LLD_BOOTSTRAP

2018-01-16 Thread Ed Maste
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.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"