Date: Fri, 22 Jan 2021 22:20:53 -0800 From: Mark Millard <marklmi@yahoo.com> To: bob prohaska <fbsd@www.zefox.net> Cc: freebsd-arm@freebsd.org Subject: Re: Needless work in buildworld Was: Re: Silent hang in buildworld, was Re: Invoking -v for clang during buildworld Message-ID: <A982C6D4-6123-40FA-8592-A3CD7B0D8E10@yahoo.com> In-Reply-To: <2903491E-7DE7-4F17-B515-120BA447B8B3@yahoo.com> References: <00104FAD-E32B-4DDE-80DD-FCEF14CEC06B@yahoo.com> <D9878BB6-2693-4A04-9E1C-126E0D378F7B@yahoo.com> <056845FE-7131-4951-96AF-805D07F7BE0D@yahoo.com> <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>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-Jan-22, at 15:23, Mark Millard <marklmi at yahoo.com> wrote: > On 2021-Jan-22, at 14:46, bob prohaska <fbsd at www.zefox.net> wrote: >=20 >> On Fri, Jan 22, 2021 at 01:53:06PM -0800, Mark Millard wrote: >>>=20 >>> I made a discovery of an unfortunate property of META_MODE relative >>> to minimizing builds with installworld invovled between builds as >>> things are. See: >>>=20 >>> = https://lists.freebsd.org/pipermail/freebsd-current/2021-January/078488.ht= ml >>>=20 >>> for details. >>>=20 >> Is this simply because the "target" is timestamped at installation, = while the >> object files are dated at creation? Just FYI, 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. > 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. >=20 > 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. >=20 >> 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=20 >> tools" when it's compiling for itself, which puts an odd meaning on = the term "cross".=20 >> Are cross tools and object files for alien hardware really needed in = such a case? >=20 > 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.) >=20 > 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. >=20 > 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: >=20 > "/usr/src/Makefile.inc1" line 335: SYSTEM_COMPILER: libclang will be = built for bootstrapping a cross-compiler. >=20 > that is involved. Example difference in context in an > explicit notation (amd64 context example, not armv7): >=20 > -target x86_64-unknown-freebsd13.0 > -target x86_64-unknown-freebsd14.0 >=20 > The processor family is not what is varying for those. >=20 >>> 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: >>>=20 >>> = https://lists.freebsd.org/pipermail/freebsd-snapshots/202*-*/thread.html >>>=20 >>> and go somewhere below (for example): >>>=20 >>> http://ftp3.freebsd.org/pub/FreeBSD/snapshots/ >>>=20 >>> 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. >>>=20 >>> 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. >>>=20 =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A982C6D4-6123-40FA-8592-A3CD7B0D8E10>