Date: Fri, 02 Jan 2009 14:01:53 -0800 From: Doug Barton <dougb@FreeBSD.org> To: Sam Leffler <sam@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r186678 - head/usr.sbin/mergemaster Message-ID: <495E8ED1.2010108@FreeBSD.org> In-Reply-To: <495E511B.7000006@freebsd.org> References: <200901011141.n01BfDqj054333@svn.freebsd.org> <495D5FC3.6000109@freebsd.org> <495D62C0.7090306@FreeBSD.org> <495D63B6.3020106@freebsd.org> <495DC24E.90606@FreeBSD.org> <495E511B.7000006@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Sam Leffler wrote:
> Doug Barton wrote:
>> Sam Leffler wrote:
>>
>>> Doug Barton wrote:
>>>
>>>> Sam Leffler wrote:
>>>>
>>>>
>>>>> Doug Barton wrote:
>>>>>
>>>>>> 1. Switch to using the top level (e.g., /usr/src) Makefile, and
>>>>>> specify
>>>>>> that we should use the *.mk files from the source directory
>>>>>> instead of
>>>>>> the installed versions. [1][2] This allows easier cross builds and
>>>>>> simplifies (or in some cases permits) upgrading.
>>>>>>
>>>>> I believe you changed the meaning of the -m flag so it now requires a
>>>>> pathname to the src tree and not src/etc. This breaks existing
>>>>> usage. In the PR I filed there was a follow-on patch from Bjoern that
>>>>> amended
>>>>> my suggestion to instead add a -M option to set the source tree. I
>>>>> thought that was an improvement over my hack. In lieu of that you
>>>>> might
>>>>> want to examine the pathname supplied to -m to try to provide
>>>>> backwards
>>>>> compatibility by stripping any /etc suffix on the path.
>>>>>
>>>> The version in bin/96528 from ru had a better fix for this issue, but
>>>> thanks for thinking of it. :)
>>>>
>>>>
>>> That's nice to know. Unfortunately what's in HEAD doesn't seem to work
>>> for my cross-install setup. Did you test using the recipe in my PR? I
>>> am debugging; could be a local problem.
>>>
>>
>> I finally got this to work, but the problem wasn't with mergemaster.
>> Turns out that bsd.obj.mk is not taking ${TARGET} into account in the
>> same way that src/Makefile.inc1 does. I'm sending the following patch
>> to -hackers for discussion:
>>
>> Index: bsd.obj.mk
>> ===================================================================
>> --- bsd.obj.mk (revision 186676)
>> +++ bsd.obj.mk (working copy)
>> @@ -43,7 +43,7 @@
>> .include <bsd.own.mk>
>>
>> .if defined(MAKEOBJDIRPREFIX)
>> -CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR}
>> +CANONICALOBJDIR:=${OBJTREE}${.CURDIR}
>> .else
>> CANONICALOBJDIR:=/usr/obj${.CURDIR}
>> .endif
>>
>> Meanwhile you can work around the problem with sendmail (which is the
>> only thing mergemaster installs that cares) by setting
>> WITHOUT_SENDMAIL in /etc/src.conf.
>>
>>
> Presumably this is because I was testing w/o your changes to run builds
> from /usr/src (instead of /usr/src/etc)?
At the point where it's actually building and installing things to the
temproot there is a SUBDIR_OVERRIDE which restricts it to src/etc so
that shouldn't make any difference.
> Unfortunately the above change does not help me; I still fail in
> sendmail as before. I don't see where OBJTREE is defined in any .mk
> file or by make (searching the man page).
It's defined in src/Makefile.inc1. Try running the most recent version
of mergemaster that's in the tree, plus the patch above to
src/share/mk/bsd.obj.mk and it should work. It worked for me using a
clean DESTDIR, -i and -Aarm. I didn't specify a different src
directory as you did in the PR since I was using my regular stock src
tree (plus the bsd.obj.mk patch above).
hth,
Doug
--
This .signature sanitized for your protection
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?495E8ED1.2010108>
