Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jan 2021 09:37:54 -0800
From:      bob prohaska <fbsd@www.zefox.net>
To:        Mark Millard <marklmi@yahoo.com>
Cc:        freebsd-arm@freebsd.org, bob prohaska <fbsd@www.zefox.net>
Subject:   Re: Needless work in buildworld
Message-ID:  <20210123173754.GA83834@www.zefox.net>
In-Reply-To: <A982C6D4-6123-40FA-8592-A3CD7B0D8E10@yahoo.com>
References:  <A6150F56-062F-4582-853A-319C1EE4DDCB@yahoo.com> <20210121023358.GA58854@www.zefox.net> <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>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 22, 2021 at 10:20:53PM -0800, Mark Millard wrote:
> 
> In things such as (abbreviated):
> 
> file '. . ./tmp/legacy/usr/sbin/awk' is newer than the target...
> 
> The "target" is the object file or whatever that might need to
> be replaced, not the . . ./tmp/legacy/usr/sbin/???.  The
> examples of such lines listed the target file path before
> the word "file" above.
> 
> I only showed one line with the common suffix text, no hint of
> the prior text on the lines summarized.
> 
> So the targets were timestamped at the prior build's creation
> of them.
> 
> It is the installworld installkernel sorts of activity that ends
> up with . . ./tmp/legacy/usr/sbin/awk and the like having time
> stamps from the new build's time frame. But the META_MODE
> records indicate that . . ./tmp/legacy/usr/sbin/awk (or whatever)
> was involved in generating the target in the prior build so the
> updated timestamp leads to questions of needing regeneration of
> the target. But a . . ./tmp/legacy/. . ./??? generally is not
> likely to cause such a need, even with new timestamps.
> 
> 
> >> If so, would some sort of checksum be able
> >> to distinguish meaningful changes? Would it be computationally worthwhile?
> 
> I leave the overall issue to Bryan Drewery to decide if there is
> something to be done or not.
> 
My thinking regarding checksums was absolutely wrong; I wanted to compare
files that hadn't been created..... 

In deciding whether to recompile, say, /usr/bin/awk, one must compare the 
creation date of the installed /usr/bin/awk to every file it depends on. 
If any of those files is newer, the whole chain must be recompiled. I
can readily see how this would avalanche, but it seems necessary. Have 
I got at least that part right? 

> > 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?

> >> More broadly, I've been surprised to see lots of files associated with foreign
> >> architechtures reported in self-hosting buildworld logs on the Pi2/3. Things
> >> with mips, ppc and i386 in the pathname. The log always reports building "cross 
> >> tools" when it's compiling for itself, which puts an odd meaning on the term "cross". 
> >> Are cross tools and object files for alien hardware really needed in such a case?
> > 
> > Clang and the llvm tools are by default built to be cross
> > compile capable. You could compile targeting powerpc64 while
> > building on armv7, for example. (Gcc had had separate
> > compilers for such.)
> > 
> > In an earlier message I showed my src.conf like file that I
> > use that included turning off generating a clang that can
> > do so, limiting it to arm (including aarch64). This is
> > not the same as the "cross tools" stage issue but does get
> > rid of some of the build activity for clang. It also does
> > not change all llvm tools to completely avoid other processor
> > families.
> > 

Probably wisest if I leave artifice like that alone. Best to 
minimize the amount of tampering at the expense of wasting 
cpu cycles. The build systems is already immensely complicated 
and private variations just make it worse.  

> > I'll note that building main (14-CURRENT) armv7 from
> > stable/13 armv7 or 13-CURRENT armv7, is an example of
> > "cross tools" being involved. Cross-tools span more
> > issues than you might initially think of, such as some
> > differing defaults for the host targeted files (old
> > context) vs. the new context's files. Thus the:
> > 
> > "/usr/src/Makefile.inc1" line 335: SYSTEM_COMPILER: libclang will be built for bootstrapping a cross-compiler.
> > 
> > that is involved. Example difference in context in an
> > explicit notation (amd64 context example, not armv7):
> > 
> > -target x86_64-unknown-freebsd13.0
> > -target x86_64-unknown-freebsd14.0
> > 
> > The processor family is not what is varying for those.
> >

That puts a new light on the notion of "cross". 

> >>> I'll note that stable/13 now exists and git's main is now 14-CURRENT.
> >>> Unfortunately, it seems that main (14-CURRENT) will not get the
> >>> weekly snapshot builds that are reported at any:
> >>> 
> >>> https://lists.freebsd.org/pipermail/freebsd-snapshots/202*-*/thread.html
> >>> 
> >>> and go somewhere below (for example):
> >>> 
> >>> http://ftp3.freebsd.org/pub/FreeBSD/snapshots/
> >>> 
> >>> until sometime after after 13.0-RELEASE : only stable/{11,12,13}
> >>> likely will, from what I'm told. Also, ci.freebsd.org is not
> >>> building main (14-CURRENT) yet. stable/13 builds are non-debug
> >>> builds.
> >>> 
> >>> https://artifact.ci.freebsd.org/snapshot/ being filling in has
> >>> not caught up with 13.0-STABLE , stable/13 , 14.0-CURRENT , or
> >>> main yet.
> >>> 

With my thanks,

bob prohaska




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