svn commit: r276052 - head

Ian Lepore ian at freebsd.org
Thu Jan 1 17:32:48 UTC 2015


On Thu, 2015-01-01 at 18:14 +0100, Dimitry Andric wrote:
> On 01 Jan 2015, at 17:41, Ian Lepore <ian at freebsd.org> wrote:
> > 
> > On Thu, 2015-01-01 at 16:50 +0100, Dimitry Andric wrote:
> >> On 22 Dec 2014, at 05:52, Garrett Cooper <ngie at FreeBSD.org> wrote:
> >>> 
> >>> Author: ngie
> >>> Date: Mon Dec 22 04:52:24 2014
> >>> New Revision: 276052
> >>> URL: https://svnweb.freebsd.org/changeset/base/276052
> >>> 
> >>> Log:
> >>> Build selective portions of gnu/usr.bin/texinfo as part of build-tools to
> >>> ensure that building on a host without makeinfo (i.e. a host where
> >>> make delete-old -DWITHOUT_INFO was run), then building with MK_INFO == yes
> >>> doesn't manifest in build errors when building info pages
> >> ..
> >>> @@ -1398,6 +1403,16 @@ build-tools: .MAKE
> >>> 		${MAKE} DIRPRFX=${_tool}/ depend && \
> >>> 		${MAKE} DIRPRFX=${_tool}/ all
> >>> .endfor
> >>> +.for _tool in \
> >>> +    ${_texinfo}
> >>> +	${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all)"; \
> >>> +		cd ${.CURDIR}/${_tool} && \
> >>> +		${MAKE} DIRPRFX=${_tool}/ obj && \
> >>> +		${MAKE} DIRPRFX=${_tool}/ depend && \
> >>> +		${MAKE} DIRPRFX=${_tool}/ all && \
> >>> +		${MAKE} DIRPRFX=${_tool}/ install DESTDIR=${WORLDTMP}
> >>> +.endfor
> >> 
> >> Strangely, this hunk seems to work incorrectly for non-native builds.
> >> For example, I tried a TARGET=arm buildworld just now, and that dies
> >> with the following error:
> >> 
> >> [...]
> >>>>> stage 2.3: build tools
> >> [...]
> >> ===> gnu/usr.bin/texinfo/makeinfo (obj,depend,all,install)
> >> [...]
> >> gzip -cn /usr/src/gnu/usr.bin/texinfo/makeinfo/../../../../contrib/texinfo/doc/makeinfo.1 > makeinfo.1.gz
> >> sh /usr/src/tools/install.sh -s -o root -g wheel -m 555   makeinfo /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo
> >> install: /usr/obj/arm.arm/arm.arm/usr/src/tmp/usr/bin/makeinfo: No such file or directory
> >> *** Error code 71
> >> 
> >> Specifically, the /usr/obj/arm.arm/arm.arm directory is incorrect, there
> >> should be only one "arm.arm" in that path.  I don't really understand
> >> how that value comes to pass, though.  When I put an echo statement just
> >> before the make install, which shows the values of ${_tool} and
> >> ${WORLDTMP}, it prints:
> >> 
> >> DEBUG: _tool=gnu/usr.bin/texinfo/makeinfo, WORLDTMP=/usr/obj/arm.arm/arm.arm/usr/src/tmp
> >> 
> >> So for some strange reason, ${WORLDTMP} is incorrect at that point?  I
> >> think something is appending one path component too many...
> >> 
> >> -Dimitry
> >> 
> > 
> > try TARGET_ARCH=arm
> 
> No, that does not help, unfortunately.  The problem seems to be that in
> Makefile.inc1, TMAKE is passing MAKEOBJDIRPREFIX=${OBJTREE} via its
> environment, and this changes the value of WORLDTMP to an incorrect
> value.
> 
> At first it looked like I could just force the correct WORLDTMP value
> via the command line instead, e.g. like this:
> 
> Index: Makefile.inc1
> ===================================================================
> --- Makefile.inc1       (revision 276480)
> +++ Makefile.inc1       (working copy)
> @@ -270,6 +270,7 @@
>  TMAKE=         MAKEOBJDIRPREFIX=${OBJTREE} \
>                 ${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \
>                 TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
> +               WORLDTMP=${WORLDTMP} \
>                 DESTDIR= \
>                 BOOTSTRAPPING=${OSRELDATE} \
>                 SSP_CFLAGS= \
> 
> However, this leads to other problems further down the road, where it
> gets errors installing parts of libllvmsupport and tblgen.
> 
> So at this point, non-native builds with MK_INFO=yes are broken.
> 
> -Dimitry
> 

You seem to be implying that the whole process of cross building is
broken, but it's not.  I do this all day long every day.  "make
TARGET_ARCH=arm [make targets and other vars here]" works.  Do you have
something in make.conf or src.conf causing problems?

-- Ian





More information about the svn-src-head mailing list