Date: Tue, 21 Aug 2018 09:12:05 +0100 From: Alexander Richardson <arichardson@freebsd.org> To: Warner Losh <imp@bsdimp.com> Cc: "O. Hartmann" <o.hartmann@walstatt.org>, "O. Hartmann" <ohartmann@walstatt.org>, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org Subject: Re: svn commit: r338096 - head/tools/build/mk Message-ID: <CA%2BZ_v8oLm_Yrcn1pgV=9NtQc=KVtxgU1KSt8K9rn1y0XQpDmag@mail.gmail.com> In-Reply-To: <CANCZdfr8qJ2HxTJmDtWW-gtG9C7F691umFdaj%2B_W-vF6W18dMg@mail.gmail.com> References: <201808201039.w7KAdhfX079450@repo.freebsd.org> <20180820214557.1f8ef5bd@thor.intern.walstatt.dynvpn.de> <CANCZdfpZTTgEAiFvY8rpiFUpN638no416AdMWjhm%2BjsUSK=zaw@mail.gmail.com> <20180820220025.6a3d141f@thor.intern.walstatt.dynvpn.de> <CANCZdfr8qJ2HxTJmDtWW-gtG9C7F691umFdaj%2B_W-vF6W18dMg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
I'm a quite surprised by this error since I can't see anywhere that gdbe would be built as a bootstrap tool (otherwise tools/build/mk should not be used). I've successfully built resuce with this so there must be some environment/make variable that causes this. It seems this happens during the build-tools stages if WITHOUT_AUTO_OBJ is set. I'll work on a patch immediately. Alex On Mon, 20 Aug 2018 at 21:14 Warner Losh <imp@bsdimp.com> wrote: > On Mon, Aug 20, 2018 at 1:59 PM, O. Hartmann <o.hartmann@walstatt.org> > wrote: > >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA512 >> >> Am Mon, 20 Aug 2018 13:48:45 -0600 >> Warner Losh <imp@bsdimp.com> schrieb: >> >> > On Mon, Aug 20, 2018 at 1:45 PM, O. Hartmann <ohartmann@walstatt.org> >> wrote: >> > >> > > -----BEGIN PGP SIGNED MESSAGE----- >> > > Hash: SHA512 >> > > >> > > Am Mon, 20 Aug 2018 10:39:43 +0000 (UTC) >> > > Alex Richardson <arichardson@FreeBSD.org> schrieb: >> > > >> > > > Author: arichardson >> > > > Date: Mon Aug 20 10:39:42 2018 >> > > > New Revision: 338096 >> > > > URL: https://svnweb.freebsd.org/changeset/base/338096 >> > > > >> > > > Log: >> > > > Avoid depending on system headers from the source tree during >> bootstrap >> > > > >> > > > This can cause surprising errors if the build tools is built >> against >> > > > headers that don't match the host system. It is also required in >> order >> > > > to allow building on non-FreeBSD systems where the headers in >> > > > /usr/include/sys are usually completely incompatible with those >> in the >> > > > source tree. >> > > > >> > > > I added an error to Makefile.boot if this is done and found this >> was >> > > > only the case in libnv. With this error in the Makefile ABI >> breakages >> > > > such as r336019 should no longer be possible. >> > > > >> > > > Reviewed By: bdrewery, kevans >> > > > Approved By: jhb (mentor) >> > > > Differential Revision: https://reviews.freebsd.org/D16186 >> > > > >> > > > Modified: >> > > > head/tools/build/mk/Makefile.boot >> > > > >> > > > Modified: head/tools/build/mk/Makefile.boot >> > > > ============================================================ >> > > ================== >> > > > --- head/tools/build/mk/Makefile.boot Mon Aug 20 10:39:37 2018 >> > > (r338095) >> > > > +++ head/tools/build/mk/Makefile.boot Mon Aug 20 10:39:42 2018 >> > > (r338096) >> > > > @@ -7,3 +7,20 @@ LDFLAGS+= -L${WORLDTMP}/legacy/usr/lib >> > > > >> > > > # we do not want to capture dependencies referring to the above >> > > > UPDATE_DEPENDFILE= no >> > > > + >> > > > +# When building host tools we should never pull in headers from >> the >> > > source sys >> > > > +# directory to avoid any ABI issues that might cause the built >> binary >> > > to crash. >> > > > +# The only exceptions to this are sys/cddl/compat for dtrace >> bootstrap >> > > tools and >> > > > +# sys/crypto for libmd bootstrap. >> > > > +.if !empty(CFLAGS:M*${SRCTOP}/sys*:N*${SRCTOP}/sys/cddl/compat*: >> > > N*${SRCTOP}/sys/crypto*) >> > > > +.error Do not include $${SRCTOP}/sys when building bootstrap >> tools. \ >> > > > + Copy the header to $${WORLDTMP}/legacy in >> tools/build/Makefile >> > > instead. \ >> > > > + Error was caused by Makefile in ${.CURDIR} >> > > > +.endif >> > > > + >> > > > +# ${SRCTOP}/include should also never be used to avoid ABI issues >> > > > +.if !empty(CFLAGS:M*${SRCTOP}/include*) >> > > > +.error Do not include $${SRCTOP}/include when building bootstrap >> tools. >> > > \ >> > > > + Copy the header to $${WORLDTMP}/legacy in >> tools/build/Makefile >> > > instead. \ >> > > > + Error was caused by Makefile in ${.CURDIR} >> > > > +.endif >> > > > _______________________________________________ >> > > > svn-src-head@freebsd.org mailing list >> > > > https://lists.freebsd.org/mailman/listinfo/svn-src-head >> > > > To unsubscribe, send any mail to " >> svn-src-head-unsubscribe@freebsd.org" >> > > >> > > >> > > This commit seems to break NanoBSD builds! >> > > >> > > While r338095 still build my NanoBSD obj tree, >= r338096 fails with: >> > > >> > > [...] >> > > - --- obj_crunchdir_gbde --- >> > > cd /pool/sources/CURRENT/src/rescue/rescue/../../sbin/gbde && >> MK_TESTS=no >> > > UPDATE_DEPENDFILE=no _RECURSING_CRUNCH=1 >> > > MAKEOBJDIRPREFIX=/pool/nanobsd/amd64/ALERICH_amd64/ >> > > pool/sources/CURRENT/src/amd64.amd64/rescue/rescue >> > > make MK_AUTO_OBJ=no DIRPRFX=rescue/rescue/gbde/ -DRESCUE >> > > CRUNCH_CFLAGS=-DRESCUE >> > > MK_AUTO_OBJ=no obj make[5]: "/pool/sources/CURRENT/src/ >> > > tools/build/mk/Makefile.boot" >> > > line 18: Do not include ${SRCTOP}/sys when building bootstrap tools. >> Copy >> > > the header to >> > > ${WORLDTMP}/legacy in tools/build/Makefile instead. Error was caused >> by >> > > Makefile >> > > in /pool/sources/CURRENT/src/sbin/gbde *** [obj_crunchdir_gbde] Error >> > > code 1 >> > > >> > >> > >> > NanoBSD just does a buildworld with a few env vars, but nothing >> exotic.... >> > >> > And in the case of 'obj' target, who cares about the includes... >> > >> > Warner >> >> So, how to explain r338095 works, r338096 doesn't? >> > > I'm unsure. I've not had a chance to look closely... > > Warner >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BZ_v8oLm_Yrcn1pgV=9NtQc=KVtxgU1KSt8K9rn1y0XQpDmag>