Migrating arm(v7) to LLD_BOOTSTRAP

Michal Meloun melounmichal at gmail.com
Wed Jan 17 05:35:14 UTC 2018



On 17.01.2018 2:41, Warner Losh wrote:
> 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.
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-arm at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
> 


More information about the freebsd-arm mailing list