Date: Thu, 31 May 2018 19:47:57 +0200 From: Dimitry Andric <dim@FreeBSD.org> To: Benjamin Kaduk <kaduk@MIT.EDU> Cc: Gary Jennejohn <gljennjohn@gmail.com>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: ``make buildkernel'' fails when /usr/obj is empty Message-ID: <32C087A4-1B67-4694-B769-16A347D4804E@FreeBSD.org> In-Reply-To: <20180531160406.GD27985@kduck.kaduk.org> References: <20180531095222.399e7a37@ernst.home> <20180531095850.5845fd7a@ernst.home> <20180531160406.GD27985@kduck.kaduk.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_F8370567-F1DC-41BB-A27B-9F3D4EAA1CDB Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 31 May 2018, at 18:04, Benjamin Kaduk <kaduk@MIT.EDU> wrote: > > On Thu, May 31, 2018 at 09:58:50AM +0200, Gary Jennejohn wrote: >> On Thu, 31 May 2018 09:52:22 +0200 >> Gary Jennejohn <gljennjohn@gmail.com> wrote: >> >>> There's something totally screwy about trying to build a kernel when >>> /usr/obj is not populated. >>> >>> I ran ``make clean'' in /usr/src and then ``make buildkernel''. This >>> fails with >>> make[2]: "/usr/src/sys/conf/kern.pre.mk" line 125: amd64 kernel >>> requires linker ifunc support >>> >>> This is total BS because >>> >>> /usr/bin/ld --version >>> LLD 6.0.0 (FreeBSD 326565-1200002) (compatible with GNU linkers) >>> >>> which is exactly what bsd.linker.mk is looking for to set ifunc. >>> >>> If I do this: >>> >>> mkdir -p /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin >>> cp /usr/bin/ld /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin >>> >>> the buildkernel then succeeds. >>> >>> Considering that (reformatted output from make) >>> >>> PATH=/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin: >>> /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin: >>> /usr/obj/usr/src/amd64.amd64/tmp/legacy/bin: >>> /usr/obj/usr/src/amd64.amd64/tmp/usr/sbin: >>> /usr/obj/usr/src/amd64.amd64/tmp/usr/bin: >>> /sbin:/bin:/usr/sbin:/usr/bin >>> >>> it seems like /usr/bin/ld should be found by bsd.linker.mk and no >>> error should be reported. >>> >> >> OK, it seems that ``make clean'' does not remove the contents of >> /usr/obj/usr/src/amd64.amd64/tmp/legacy. If I delete everything >> under /usr/obj then ``make buildkernel'' works. >> >> Still, it seems pretty strange to me to make building a kernel >> depend on some random junk which is left laying around under >> /usr/obj. > > Whatever happened to the "run buildworld or kernel-toolchain before > buildkernel" requirement? That is still a requirement, yes. Otherwise, you might have outdated toolchain components are in your /usr/obj. -Dimitry --Apple-Mail=_F8370567-F1DC-41BB-A27B-9F3D4EAA1CDB Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCWxA1TQAKCRCwXqMKLiCW o20qAJ9MwibgMWR7yG5bC8q6GksjqGIumQCg9RS3pHS0jH02b7u0i5TRYLFP/Xg= =8B91 -----END PGP SIGNATURE----- --Apple-Mail=_F8370567-F1DC-41BB-A27B-9F3D4EAA1CDB--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?32C087A4-1B67-4694-B769-16A347D4804E>