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>