Skip site navigation (1)Skip section navigation (2)
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>