Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Jan 2021 11:06:40 -0800
From:      bob prohaska <fbsd@www.zefox.net>
To:        Mark Millard <marklmi@yahoo.com>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>, bob prohaska <fbsd@www.zefox.net>
Subject:   Re: Needless work in buildworld
Message-ID:  <20210124190640.GA90418@www.zefox.net>
In-Reply-To: <EDF9F631-FF55-444C-BAB3-3037CEA61D65@yahoo.com>
References:  <8D0C2A4C-B616-47B9-864E-D846A6EBA3D6@yahoo.com> <20210122011535.GA66611@www.zefox.net> <655C6BAA-8B10-4130-A5C9-EDED6906207D@yahoo.com> <C502D267-5158-4658-BB02-EC67835015D3@yahoo.com> <36A2E015-78DF-40AB-BF53-FB3D26FA5AAC@yahoo.com> <20210122224656.GA76907@www.zefox.net> <2903491E-7DE7-4F17-B515-120BA447B8B3@yahoo.com> <A982C6D4-6123-40FA-8592-A3CD7B0D8E10@yahoo.com> <20210123173754.GA83834@www.zefox.net> <EDF9F631-FF55-444C-BAB3-3037CEA61D65@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jan 23, 2021 at 10:01:07PM -0800, Mark Millard wrote:
[huge snip]
> 
> 
> The dependency tracking builds up to the final things being built,
> not from the final things backwards. 

That is likely the cause of my confusion. There's a natural "trail of
breadcrumbs" leading from the final product back upstream, via the 
dependencies. I thought that's what META_MODE followed. Is there 
something going the other way, source to object to installed binary, 
as well? That seems difficult. The author of a book can't readily
guess who will cite it.  

> It frequently is the case
> that only some of the chain required for a final thing is rebuilt.
> As an example: A final link may reference a mix of changed and
> unchanged material, for example. But that final link is required
> if any of its inputs changed. Unnecessary changes to inputs might
> lead to a relink that otherwise would not be needed.
> 
> > I
> > can readily see how this would avalanche, but it seems necessary. Have 
> > I got at least that part right? 
> 
> The "avalanche" reference and implication fits my alternate wording
> as well as yours and so is good, whatever the other details of the
> avalanche structure may be.
> 
> >>> The files (programs) were used during the activity that generated the prior
> >>> build of the target. The worry is that the updated programs might have
> >>> differing results from older ones and so the new timestamps lead to
> >>> rebuilding. The worry is just unlikely to be an actual problem for many of
> >>> the particular programs.
> >>>
> >>> It would be good if META_MODE could ignore those programs that are in the
> >>> legacy area and are unlikely to cause the output to vary in some
> >>> significant way.
> >>> 
> > 
> > Is this to say that META_MODE is checking outside the dependency chain
> > (web?), reacting to files changed but not to be used again?
> 
> I'm not sure of the reference/context-intended here.
>
> See the prior libc++.a example above for an example in
> which the timestamp on . . ./tmp/legacy/usr/sbin/rm is
> irrelevant to if the libc++.a actually needs to be
> rebuilt.

Well, if META_MODE is looking at things that don't matter anymore,
that would be outside the dependency chain. If those things matter,
but only conditionally, one can either check for the conditions or
recompile, whichever is easier. Checking conditions will get messy. 
Perhaps that's the whole problem 8-)
 
Thanks for reading!

bob prohaska




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20210124190640.GA90418>