Date: Sat, 13 Jun 2009 11:10:35 -0700 From: Marcel Moolenaar <xcllnt@mac.com> To: Mark Murray <markm@FreeBSD.org> Cc: "current@freebsd.org" <current@freebsd.org> Subject: Re: Build is polluted by host build environment. Message-ID: <C800F72C-D396-42AE-AAEF-7C12ED34DA10@mac.com> In-Reply-To: <E1MFX3z-000HWl-TK@greatest.grondar.org> References: <E1MFX3z-000HWl-TK@greatest.grondar.org>
next in thread | previous in thread | raw e-mail | index | archive | help
You need to provide much more details, because use of /use/include during the build is deliberate and more importantly required for correct cross-building -- Marcel (mobile) On Jun 13, 2009, at 10:30 AM, Mark Murray <markm@FreeBSD.org> wrote: > Hi folks > > The "buildworld" build is polluted by the build environment. > > Specifically, headers in /user/include/... are used when I believe > they > should not be. This could easily break cross-builds, and may > compromise > upgrades where /usr/include/... contains some damaging ancient > history. > > To see this in action, you need to move /usr/include out of the way > after the build-tools are built, but before the target buid starts for > real. I AM NOT WORRIED ABOUT BUILD-TOOLS OR BOOTSTRAPPING TOOLS! :-) > > This patch achieves the desired result with a dirty hack. NOTE!! You > will need to move your /usr/include.NOTNOW back to /usr/include in the > likely event of a failure. > > After applying this, do a "make cleandir" then "make buildworld". > DON'T > use the "-j N" option to make. > > ------------------------------8<-------------------------------- > Index: Makefile.inc1 > =================================================================== > --- Makefile.inc1 (revision 194122) > +++ Makefile.inc1 (working copy) > @@ -498,6 +501,14 @@ > cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIB32IMAKE} $ > {.TARGET:S/32$//} > .endif > > +_break_base_dependancies: > + mv /usr/include /usr/include.NOTNOW > + # Something for libraries also? > + > +_fix_base_dependancies: > + mv /usr/include.NOTNOW /usr/include > + # Something for libraries also? > + > WMAKE_TGTS= > .if !defined(SUBDIR_OVERRIDE) > WMAKE_TGTS+= _worldtmp _legacy _bootstrap-tools > @@ -506,9 +517,11 @@ > .if !defined(SUBDIR_OVERRIDE) > WMAKE_TGTS+= _cross-tools > .endif > +WMAKE_TGTS+= _break_base_dependancies > WMAKE_TGTS+= _includes _libraries _depend everything > .if ${TARGET_ARCH} == "amd64" && ${MK_LIB32} != "no" > WMAKE_TGTS+= build32 > +WMAKE_TGTS+= _fix_base_dependancies > .endif > > buildworld: buildworld_prologue ${WMAKE_TGTS} buildworld_epilogue > > ------------------------------8<-------------------------------- > The first failure that I see is > > ===> gnu/usr.bin/cc/cc_tools (depend) > make: don't know how to make /usr/include/stdarg.h. Stop > *** Error code 2 > > > There are many more if I hack my way past that one. > > I believe that the "_includes _libraries _depend everything build32" > targets should all be in an effective "-nostdinc" environment once the > "real" build gets underway, with only the ${SRC}/include/... and > friends > being visible to the build by explicit -I$FOO options to the build. > > I haven't checked, but libraries may have a similar issue. > > Comments? > > M > -- > Mark R V Murray > Cert APS(Open) Dip Phys(Open) BSc Open(Open) BSc(Hons)(Open) > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org > "
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C800F72C-D396-42AE-AAEF-7C12ED34DA10>