Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Sep 2018 23:55:55 -0700
From:      <soralx@cydem.org>
To:        <emaste@freebsd.org>
Cc:        <freebsd-current@freebsd.org>
Subject:   Re: Buildowrld tries to use old ld, and fails
Message-ID:  <20180924235555.759b418d@mscad14>
In-Reply-To: <CAPyFy2CSSN8TO3ym22F5cu4pV40ai9-9rnxeKSPq2jo%2B=PE_fA@mail.gmail.com>
References:  <20180923181818.7f3cb925@mscad14> <CAPyFy2CSSN8TO3ym22F5cu4pV40ai9-9rnxeKSPq2jo%2B=PE_fA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

> > 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?

Indeed, I had "WITHOUT_LLD_BOOTSTRAP=yes" in src.conf. Not sure how
that line made it into this file on a number of my systems... perhaps
an artifact of old -CURRENT upgrade procedure that I've forgotten about.

Soon as I emptied /etc/src.conf, and dropped the 'LD=' from environment,
the build succeeds no problem. Thanks, Ed!

> >  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.

I was just following a note 20180510 from UPDATING. It worked before.
And there are no newer entries overruling the old note, so I thought
it should still work as before...

Strange that overriding LD works when pointing to ld from binutils, but
not always with ld.lld linker; for example, 'stand/i386/mbr/' ignores
"LD=ld.lld", but not "LD=/usr/local/bin/ld".

-- 
[SorAlx]  ridin' VN2000 Classic LT



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180924235555.759b418d>