Can't build kernel anymore: amd64 kernel requires linker ifunc support

Warner Losh imp at bsdimp.com
Wed May 16 13:43:22 UTC 2018


On Wed, May 16, 2018 at 7:35 AM, Rodney W. Grimes <
freebsd-rwg at pdx.rh.cn85.dnsmgr.net> wrote:

> > On Wed, May 16, 2018 at 3:49 AM, Hans Petter Selasky <hps at selasky.org>
> > wrote:
> >
> > > On 05/16/18 11:42, Emeric POUPON wrote:
> > >
> > >>
> > >> Thanks for your help.
> > >>>>
> > >>>> Actually, I already did all the steps described here:
> > >>>> https://www.freebsd.org/doc/handbook/makeworld.html with success.
> > >>>> After step 10, I now get this error.
> > >>>> I tried to put WITHOUT_LLD_BOOTSTRAP=yes in /etc/src.conf + rebuild
> > >>>> everything with no luck.
> > >>>>
> > >>>>
> > >>>> Please remove this line from your src.conf, lld is required for
> building
> > >>> kernel since the ifunc support.
> > >>>
> > >>>
> > >> I already did all the steps of the handbook without this line, and I
> > >> finally had the issue I described.
> > >> What I told is that adding this line + make buildworld does not solve
> the
> > >> kernel building issue.
> > >>
> > >
> > > Try adding:
> > >
> > > -m $PWD/share/mk
> > >
> > > After make.
> > >
> > > Not sure if it helps.
> >
> >
> > LD=ld.lld make
> >
> > is the magic here. The kernel needs a new linker to properly link in the
> > ifunc, and that's not our ancient ld. lld does it, as does the latter-day
> > binutils.
>
> Since this now seems to be a mandatory thing to get a kernel built
> can it please be set in the Makefile that is needing it?
>

No. It's a transient requirement that will be gone shortly when Ed does the
next step of lld integration.

Wanrer


More information about the freebsd-arch mailing list