On 01 Jan 2015, at 18:32, Ian Lepore <i...@freebsd.org> wrote: > > On Thu, 2015-01-01 at 18:14 +0100, Dimitry Andric wrote: >> On 01 Jan 2015, at 17:41, Ian Lepore <i...@freebsd.org> wrote: >>> >>> On Thu, 2015-01-01 at 16:50 +0100, Dimitry Andric wrote: >>>> On 22 Dec 2014, at 05:52, Garrett Cooper <n...@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?
No, just MK_INFO=yes, as I said. That is what Garrett tried to fix in this commit, but which only works for native builds. I'll be coming up with a fix shortly. -Dimitry
signature.asc
Description: Message signed with OpenPGP using GPGMail