Buildowrld tries to use old ld, and fails

Ed Maste emaste at freebsd.org
Mon Sep 24 14:36:36 UTC 2018


On 23 September 2018 at 21:18,  <soralx at cydem.org> wrote:
>
> Howdy!
>
>  Since a couple months ago, the world on -CURRENT cannot be built using
>  the normal procedure:
>    time env LD=ld.lld make -j6 buildworld buildkernel

The normal procedure shouldn't need any LD= overrides; is there
something unique in your build? Any src.conf settings?

>  Here's the result:
>    [late in buildowrld process]
>    --- all_subdir_stand ---
>    /usr/obj/usr/src/amd64.amd64/tmp/usr/bin/ld: unrecognized option '--no-rosegment'
>    /usr/obj/usr/src/amd64.amd64/tmp/usr/bin/ld: use the --help option for usage information
>    cc: error: linker command failed with exit code 1 (use -v to see invocation)
>    make[5]: stopped in /usr/src/stand/i386/mbr
>
>  Workaround is to use linker from binutils:
>    env LD=/usr/local/bin/ld make buildworld

Just overriding LD isn't sufficient to choose a linker, because most
linking is performed by the compiler driver (i.e., cc) which does not
use the LD variable.


More information about the freebsd-current mailing list