Date: Fri, 22 Jan 2021 01:45:29 -0800 From: Mark Millard <marklmi@yahoo.com> To: Bryan Drewery <bdrewery@FreeBSD.org>, Current FreeBSD <freebsd-current@freebsd.org> Subject: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes) Message-ID: <B74790D9-FBC2-4818-BEAF-34E5B705C460@yahoo.com> References: <B74790D9-FBC2-4818-BEAF-34E5B705C460.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Given an already built, installed and booted system version, I've noted a big difference for META_MODE in 2 rebuild contexts (no source updates involved): *) Prior buildworld buildkernel, installkernel, installworld, boot presumed before (A) and before (B) below. A) make . . . buildworld buildkernel make . . . buildworld buildkernel (the 2nd buildworld buildkernel in (A) builds far less than the = first) (that means that the first built more than I would have guessed) vs. B) make . . . buildworld buildkernel make . . . installworld make . . . buildworld buildkernel (the 2nd buildworld buildkernel in (B) builds far more than it did in = (A)) (so, more like the 1st buildworld buildkernel in (A) and (B), given the specified prior context) So I used make -dM for the commented buildworld buildkernel lines, = logging the build output and later diff'ing them. Result that I noticed? Lots of lines uniquely from (B)'s case, ending = with one of: file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/awk' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/cap_mkdb' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/cat' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/cp' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/crunchgen' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/crunchide' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/dd' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/egrep' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/env' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/file2c' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/gencat' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/grep' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/gzip' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/jot' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/lex' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/ln' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/m4' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/mv' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/patch' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/rm' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/sed' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/sh' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/touch' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/truncate' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/uudecode' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/uuencode' is newer than the target... file = '/usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/u= sr/sbin/xargs' is newer than the target... The lines with these lead to more files being updated and so causing = more indirect rebuild activity (that cascades). Many/most/all(?) of these seem to me to be unlikely to actually need to contribute to what needs to be rebuilt (just based on being newer). So the option to ignore (some of?) them could be useful in making META_MODE builds quicker. =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?B74790D9-FBC2-4818-BEAF-34E5B705C460>