Date: Mon, 20 Aug 2018 13:48:45 -0600 From: Warner Losh <imp@bsdimp.com> To: "O. Hartmann" <ohartmann@walstatt.org> Cc: Alex Richardson <arichardson@freebsd.org>, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r338096 - head/tools/build/mk Message-ID: <CANCZdfpZTTgEAiFvY8rpiFUpN638no416AdMWjhm%2BjsUSK=zaw@mail.gmail.com> In-Reply-To: <20180820214557.1f8ef5bd@thor.intern.walstatt.dynvpn.de> References: <201808201039.w7KAdhfX079450@repo.freebsd.org> <20180820214557.1f8ef5bd@thor.intern.walstatt.dynvpn.de>
next in thread | previous in thread | raw e-mail | index | archive | help
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 bootstr= ap > > > > 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 orde= r > > to allow building on non-FreeBSD systems where the headers in > > /usr/include/sys are usually completely incompatible with those in th= e > > 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 > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > --- 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+=3D -L${WORLDTMP}/legacy/usr/lib > > > > # we do not want to capture dependencies referring to the above > > UPDATE_DEPENDFILE=3D 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, >=3D r338096 fails with: > > [...] > - --- obj_crunchdir_gbde --- > cd /pool/sources/CURRENT/src/rescue/rescue/../../sbin/gbde && MK_TESTS= =3Dno > UPDATE_DEPENDFILE=3Dno _RECURSING_CRUNCH=3D1 > MAKEOBJDIRPREFIX=3D/pool/nanobsd/amd64/ALERICH_amd64/ > pool/sources/CURRENT/src/amd64.amd64/rescue/rescue > make MK_AUTO_OBJ=3Dno DIRPRFX=3Drescue/rescue/gbde/ -DRESCUE > CRUNCH_CFLAGS=3D-DRESCUE > MK_AUTO_OBJ=3Dno obj make[5]: "/pool/sources/CURRENT/src/ > tools/build/mk/Makefile.boot" > line 18: Do not include ${SRCTOP}/sys when building bootstrap tools. Cop= y > 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 > - -- > O. Hartmann > > Ich widerspreche der Nutzung oder =C3=9Cbermittlung meiner Daten f=C3=BCr > Werbezwecke oder f=C3=BCr die Markt- oder Meinungsforschung (=C2=A7 28 Ab= s. 4 BDSG). > -----BEGIN PGP SIGNATURE----- > > iLUEARMKAB0WIQQZVZMzAtwC2T/86TrS528fyFhYlAUCW3sadQAKCRDS528fyFhY > lPM7Af4iQXvPALoDxlQNnJXuWsqi+ntJ/8RoSHcz9rh7oVBOIqAm/O8IQ46GxKSP > j1WhU/mQ26cNCLeE0QR7uueDhPVAAf42QU5z9iO9mZ/q1mgg0tDhDkkZkcPkrbFm > mj/dWopPygFgptxOYiP78Jzp1IHf2QJjHCRmv13fbE8IrIO0BnbJ > =3DFS8J > -----END PGP SIGNATURE----- >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfpZTTgEAiFvY8rpiFUpN638no416AdMWjhm%2BjsUSK=zaw>