Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Sep 2018 15:10:30 -0400
From:      Ed Maste <emaste@freebsd.org>
To:        Michael Tuexen <tuexen@freebsd.org>
Cc:        Warner Losh <imp@bsdimp.com>, Rebecca Cran <rebecca@bluestop.org>,  Mark Johnston <markj@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>,  "freebsd-toolchain@FreeBSD.org" <freebsd-toolchain@freebsd.org>
Subject:   Re: building head -r338675 with devel/amd64-gcc: /usr/local/x86_64-unknown-freebsd12.0/bin/ld: warning: -z ifunc-noplt ignored
Message-ID:  <CAPyFy2Cju5ptkO3kteVKJGE-wJj8BfnaN88_JTNaT1pJRKWKKw@mail.gmail.com>
In-Reply-To: <CFD9EF21-BEAE-49EB-9C76-C18EE2A6FF3B@freebsd.org>
References:  <2E7136DD-9C25-44C1-8C9A-310C2D1D7189@yahoo.com> <CAPyFy2BHUocGh-H8xfmdQXTTX_Qvoi50xKzoTGco8Cn9FfGcyQ@mail.gmail.com> <20180921193139.GB5120@raichu> <CAPyFy2DTw-LGXUVCP2W0MOW0bXWe2An18Y-Uy-U6X40UJCiy6w@mail.gmail.com> <20180921220639.GF5120@raichu> <83c3a1bd-6922-20d1-4559-26bca1995229@bluestop.org> <CANCZdfrAZkz-6RwG8N_iMt4OOxaBFRpdLCo4h7q2KnLrb_A%2BPg@mail.gmail.com> <33ea78c3-7954-d30e-4f40-dcada55e7367@bluestop.org> <CANCZdfrRNqHMrCdYuDgs=cLJfm11BVv8d-=D_c1s5jp1tz8ZKQ@mail.gmail.com> <CANCZdfqda%2B=MkzKc%2BhF0_1NZG90kTzxZuC5uJUE5qaDEW7szgA@mail.gmail.com> <74775769-6810-63ab-d776-013bc72c8488@bluestop.org> <CANCZdfqwq%2BjbBJnRNF=ef1iGVoNFux=Vptf3HSdNTGVD7DPzKg@mail.gmail.com> <CFD9EF21-BEAE-49EB-9C76-C18EE2A6FF3B@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 23 September 2018 at 07:31, Michael Tuexen <tuexen@fh-muenster.de> wrote:
> Using this patch I was able to build/install world and kernel on an i386 system.
> However, after removing it, I can't build world then. When trying to compile a
> kernel "the old way" I end up with:
>
> tuexen@head:~/head/sys/i386/conf % config -g TCP
> WARNING: duplicate option `GEOM_PART_GPT' encountered.
> Kernel build directory is ../compile/TCP
> Don't forget to do ``make cleandepend && make depend''
> tuexen@head:~/head/sys/i386/conf % cd ../compile/TCP/
> tuexen@head:~/head/sys/i386/compile/TCP % make -j 6
> make: "../../../conf/../../../conf/kern.pre.mk" line 126: amd64/i386 kernel requires linker ifunc support
>
> This is r338893.
>
> amd64 works without any problem. So this is i386 specific. Any idea how to fix it?

This safety belt is in place to ensure we don't build a non-functional
kernel - now that the i386 kernel requires ifunc support using old GNU
ld results in a kernel that doesn't boot.

The workaround for the "old way" is to explicitly set LD=ld.lld in the
environment - "LD=ld.lld make -j 6" should work. More details in this
-arch thread, when amd64 encountered this hiccup:
https://lists.freebsd.org/pipermail/freebsd-arch/2018-May/018967.html

The same issue now affects i386 as it has started using ifuncs, and
will be resolved once we can switch i386's /usr/bin/ld to be lld,
which is waiting on ports fixes in PR214864.



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