svn commit: r338096 - head/tools/build/mk

Alexander Richardson arichardson at freebsd.org
Tue Aug 21 09:22:01 UTC 2018


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 at bsdimp.com> wrote:

> On Mon, Aug 20, 2018 at 1:59 PM, O. Hartmann <o.hartmann at walstatt.org>
> wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA512
>>
>> Am Mon, 20 Aug 2018 13:48:45 -0600
>> Warner Losh <imp at bsdimp.com> schrieb:
>>
>> > On Mon, Aug 20, 2018 at 1:45 PM, O. Hartmann <ohartmann at walstatt.org>
>> wrote:
>> >
>> > > -----BEGIN PGP SIGNED MESSAGE-----
>> > > Hash: SHA512
>> > >
>> > > Am Mon, 20 Aug 2018 10:39:43 +0000 (UTC)
>> > > Alex Richardson <arichardson at 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 at freebsd.org mailing list
>> > > > https://lists.freebsd.org/mailman/listinfo/svn-src-head
>> > > > To unsubscribe, send any mail to "
>> svn-src-head-unsubscribe at 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
>


More information about the svn-src-all mailing list