svn commit: r276052 - head
Garrett Cooper
yaneurabeya at gmail.com
Thu Jan 1 18:38:34 UTC 2015
On Jan 1, 2015, at 9:50, Dimitry Andric <dim at FreeBSD.org> wrote:
> On 01 Jan 2015, at 18:32, Ian Lepore <ian at FreeBSD.org> wrote:
>>
>> 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?
>
> 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.
OBJTREE is being populated with TARGET.TARGET_ARCH twice… That’s the bug.
Unfortunately this commit only made this issue apparent. Sorry for not testing with a non-native build :(...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20150101/93fea2b3/attachment.sig>
More information about the svn-src-all
mailing list