On Sat, Mar 04, 2017 at 05:16:49PM -0700, Warner Losh wrote:
> On Sat, Mar 4, 2017 at 3:32 PM, Rodney W. Grimes
> <free...@pdx.rh.cn85.dnsmgr.net> wrote:
> >>
> >> > On Mar 4, 2017, at 13:43, Warner Losh <i...@bsdimp.com> wrote:
> >> >
> >> >> On Sat, Mar 4, 2017 at 1:25 PM, Bryan Drewery <bdrew...@freebsd.org> 
> >> >> wrote:
> >> >>> On 3/4/2017 12:20 PM, Rodney W. Grimes wrote:
> >> >>> -- Start of PGP signed section.
> >> >>> [ Charset windows-1252 unsupported, converting... ]
> >> >>>>> On 3/4/2017 7:34 AM, Rodney W. Grimes wrote:
> >> >>>>> What is ${.CURDIR:H:H} ?????  Yes that seems to work but now we are 
> >> >>>>> obscuring
> >> >>>>> ../.. into makefile syntax magic, probably not a grand idea.
> >> >>>> It just trims off the last directory component.  This both reduces
> >> >>>> namecache lookups, lessens the amount of data in a log, and makes
> >> >>>> debugging a log simpler by not having a crazy path like:
> >> >>>> /home/bdrewery/big/git/buildserver/sys/modules/usb/template/../../../dev/usb/template/usb_template.c
> >> >>>>
> >> >>>> It's far simpler to understand and work with:
> >> >>>> /home/bdrewery/big/git/buildserver/sys/dev/usb/template/usb_template.c
> >> >>>>
> >> >>>> The only downside is it is slightly more obscure in a Makefile, but 
> >> >>>> once
> >> >>>> you know what :H is then it's not a problem.  This is why SRCTOP is 
> >> >>>> even
> >> >>>> better than this as it is far more clear than even :H and avoids the
> >> >>>> ../../ problems.
> >> >>> Lets do one or the other, but not both ${SRCTOP} and :H:H:H.  It 
> >> >>> appears
> >> >>> that we now have a mix and mashed up some one way others the other.
> >> >>
> >> >> That I can agree with. I would prefer to standardize on SRCTOP as :H is
> >> >> too obscure without learning about make details.
> >> >
> >> > :H is insane in 90% of the cases I've seen it used. Let's roll with
> >> > SRCTOP everywhere we can. That's safer from directory motion anyway...
> >>
> >> Ok, I have 3 votes for SRCTOP, so I'll implement the remaining change 
> >> using SRCTOP (for usr.bin), and reimplement the previous changes using 
> >> SRCTOP.
> >
> > And that some how over rides the 3 votes for not doing any of these changes?
> > Slow down please.  We dont need a bike shed, but I think we need a clear
> > target and a consense larger than 3+ 3- and less than a 6 hour wall clock
> > of discussion.
> >
> > It would also be best if it was this change and only this change committed
> > in very large (preferably about 20) commits.
> 
> We've had about 200-300 commits in the build system in the past year.
> There's no real need to slow down. It's a real mess (though a lot less
> of one thanks to Bryan) and SRCTOP is a definite cleanup.

As someone who get merge conflicts (in CheriBSD) from a fairly part
portion of these commits, I much prefer the small commits.  While it's
arguably the same work, I find it easier to review a small set of merge
conflicts than a massive diff which might include multiple types of
conflicts.

Personally, I like the ${SRCTOP} changes and think using absolute tree
relative paths is the way to go.  Use of ${SRCTOP} consistently should
make it easier to relocate things in the tree when that makes sense and
makes including Makefile.inc's from other parts of the tree easier (for
example, in CheriBSD, I build a libc_nosyscalls and a libsyscalls by
including appropriate bits from libc's build infrastructure.

-- Brooks

Attachment: signature.asc
Description: PGP signature

Reply via email to