Date: Thu, 23 Feb 2023 16:41:34 -0800 From: Mark Millard <marklmi@yahoo.com> To: "Simon J. Gerraty" <sjg@juniper.net> Cc: Bryan Drewery <bdrewery@FreeBSD.org>, Current FreeBSD <freebsd-current@FreeBSD.org>, Peter <pmc@citylink.dinoex.sub.org> Subject: Re: FYI: Why META_MODE rebuilds so much for building again after installworld (no source changes) Message-ID: <1B5FCF8A-0DFD-4246-8464-65A44A40529F@yahoo.com> In-Reply-To: <30.1677189836@kaos.jnpr.net> References: <B74790D9-FBC2-4818-BEAF-34E5B705C460@yahoo.com> <3345EBA5-A09C-4E3F-B94D-39F57F56BDBB@yahoo.com> <DB0C7B41-2101-4C5C-BFC8-3C95CC0B9F6F@yahoo.com> <73088.1611797582@kaos.jnpr.net> <CB7040D0-3BF4-496F-A54F-87E5378016E0@yahoo.com> <F6BF110D-7855-4A10-A53F-52B34282234F@yahoo.com> <10819.1677108389@kaos.jnpr.net> <76FA98EF-6184-4D7E-A01F-0EE8117D0D10@yahoo.com> <29887.1677115125@kaos.jnpr.net> <27790339-240F-4C97-97C7-38AFD8DE03D5@yahoo.com> <7FB6F619-6E71-4075-8A6C-573564371DD5@yahoo.com> <2655.1677134606@kaos.jnpr.net> <242BB478-B2FE-4BCC-A56E-098F3FEB3EE1@yahoo.com> <42586.1677183334@kaos.jnpr.net> <AE95CF5D-0B7E-4DA3-8777-5FA47E1751D8@yahoo.com> <30.1677189836@kaos.jnpr.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 23, 2023, at 14:03, Simon J. Gerraty <sjg@juniper.net> wrote: Simplifying context . . . . . . > As I mentioned previously, there is no variablity of OBJTOP within the > context of a single make instance - at least not once it starts = running > targets. >=20 >> . . . >=20 > .MAKE.META.IGNORE_PATHS +=3D ${OBJTOP}/tmp/legacy/usr I'll use that definition line for the below. > should result in nothing under ${OBJTOP}/tmp/legacy/usr causing a = target > to be out of date - just because it is newer. I'll ignore there that that is skipping too much and just show what happens for the 2nd buildkernel of 2 in a row when I use that exact line for both make runs. First counts of the "is newer than" lines, counting separate program names separately: # cat = /usr/obj/BUILDs/main-amd64-nodbg-clang/sys-typescripts/typescript-make-amd= 64-nodbg-clang-amd64-host-2023-02-23:16:15:18 | grep "is newer than the = target" | sed - e "s@^.*: file '@file '@" | sort | uniq -c | sort -rn | more 2553 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... 1001 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Thousands of rebuilt things based on: . . ./tmp/legacy/usr/sbin/realpath . . ./tmp/legacy/usr/sbin/ln It appears that buildkernel does not use an OBJTOP definition that references: /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64 in my context. For reference of Build lines paired with a few of those "is newer than" lines: First realpath: # grep -A1 "tmp/legacy/usr/sbin/realpath\>" = /usr/obj/BUILDs/main-amd64-nodbg-clang/sys-typescripts/typescript-make-amd= 64-nodbg-clang-amd64-host-2023-02-23:16:15:18 | more = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/machine.meta: 23: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/machine -- = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/x86.meta: 23: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/x86 -- = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/i386.meta: 23: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/i386 -- = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/machine.meta: 23: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/machine -- = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/x86.meta: 23: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/realpath' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/x86 -- . . . Then for ln: # grep -A1 "tmp/legacy/usr/sbin/ln\>" = /usr/obj/BUILDs/main-amd64-nodbg-clang/sys-typescripts/typescript-make-amd= 64-nodbg-clang-amd64-host-2023-02-23:16:15:18 | more = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_scsi.h.meta: 12: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_scsi.h = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_cam.h.meta: 12: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_cam.h = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_aac.h.meta: 12: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aac/opt_aac.h -- = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/opt_scsi.h.meta: 12: = file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/opt_scsi.h = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/opt_cam.h.meta: 12: = file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/opt_cam.h = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/opt_aacraid.h.meta: 12: = file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/aacraid/opt_aacraid.h -- = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/acpi/acpi_asus/opt_acpi.h.meta: = 12: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/acpi/acpi_asus/opt_acpi.h = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/acpi/acpi_asus/opt_ddb.h.meta: = 12: file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/legac= y/usr/sbin/ln' is newer than the target... Building = /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERI= C-NODBG/modules/usr/main-src/sys/modules/acpi/acpi_asus/opt_ddb.h -- . . . I've still no clue of a notation that avoids this for my choice to use personal MAKEOBJDIRPREFIX paths: amd64 context: # grep MAKEOBJDIRPREFIX make-*.sh = make-13S-amd64-dbg-clang.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUILDs= /13S-amd64-dbg-clang" \ = make-13S-amd64-dbg-gccxtc.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUILD= s/13S-amd64-dbg-gccxtc" \ = make-13S-amd64-nodbg-clang.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUIL= Ds/13S-amd64-nodbg-clang" \ = make-13S-amd64-nodbg-gccxtc.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/13S-amd64-nodbg-gccxtc" \ = make-13_0R-amd64-dbg-clang.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUIL= Ds/13_0R-amd64-dbg-clang" \ = make-13_0R-amd64-nodbg-clang.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BU= ILDs/13_0R-amd64-nodbg-clang" \ = make-13_1R-amd64-dbg-clang.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUIL= Ds/13_1R-amd64-dbg-clang" \ = make-13_1R-amd64-dbg-gccxtc.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/13_1R-amd64-dbg-gccxtc" \ = make-13_1R-amd64-nodbg-clang.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BU= ILDs/13_1R-amd64-nodbg-clang" \ = make-13_1R-amd64-nodbg-gccxtc.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/B= UILDs/13_1R-amd64-nodbg-gccxtc" \ = make-alt-main-amd64-nodbg-clang-alt.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr= /obj/BUILDs/main-amd64-nodbg-clang-alt" \ = make-main-amd64-dbg-clang.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUILD= s/main-amd64-dbg-clang" \ = make-main-amd64-dbg-gccxtc.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUIL= Ds/main-amd64-dbg-gccxtc" \ = make-main-amd64-nodbg-clang-alt.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj= /BUILDs/main-amd64-nodbg-clang-alt" \ = make-main-amd64-nodbg-clang.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/main-amd64-nodbg-clang" \ = make-main-amd64-nodbg-gccxtc.amd64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BU= ILDs/main-amd64-nodbg-gccxtc" \ aarch64 context (and armv7): # grep MAKEOBJDIRPREFIX make-*.sh = make-13S-CA53-dbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUILD= s/13S-CA53-dbg-clang" \ = make-13S-CA53-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/13S-CA53-nodbg-clang" \ = make-13S-CA7-dbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUILDs= /13S-CA7-dbg-clang" \ = make-13S-CA7-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUIL= Ds/13S-CA7-nodbg-clang" \ = make-13S-CA72-dbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUILD= s/13S-CA72-dbg-clang" \ = make-13S-CA72-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/13S-CA72-nodbg-clang" \ = make-13_0R-CA53-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/B= UILDs/13_0R-CA53-nodbg-clang" \ = make-13_0R-CA7-nodbg-clang-alt.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/ob= j/BUILDs/13_0R-CA7-nodbg-clang-alt" \ = make-13_0R-CA7-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BU= ILDs/13_0R-CA7-nodbg-clang" \ = make-13_0R-CA72-dbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/13_0R-CA72-dbg-clang" \ = make-13_0R-CA72-nodbg-clang-alt.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/o= bj/BUILDs/13_0R-CA72-nodbg-clang-alt" \ = make-13_0R-CA72-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/B= UILDs/13_0R-CA72-nodbg-clang" \ = make-13_1R-CA53-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/B= UILDs/13_1R-CA53-nodbg-clang" \ = make-13_1R-CA7-nodbg-clang-alt.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/ob= j/BUILDs/13_1R-CA7-nodbg-clang-alt" \ = make-13_1R-CA7-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BU= ILDs/13_1R-CA7-nodbg-clang" \ = make-13_1R-CA72-dbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/13_1R-CA72-dbg-clang" \ = make-13_1R-CA72-nodbg-clang-alt.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/o= bj/BUILDs/13_1R-CA72-nodbg-clang-alt" \ = make-13_1R-CA72-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/B= UILDs/13_1R-CA72-nodbg-clang" \ = make-alt-main-CA7-nodbg-clang-alt.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr= /obj/BUILDs/main-CA7-nodbg-clang-alt" \ = make-main-CA53-dbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUIL= Ds/main-CA53-dbg-clang" \ = make-main-CA53-nodbg-clang-alt.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/ob= j/BUILDs/main-CA53-nodbg-clang-alt" \ = make-main-CA53-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BU= ILDs/main-CA53-nodbg-clang" \ = make-main-CA7-dbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUILD= s/main-CA7-dbg-clang" \ = make-main-CA7-nodbg-clang-alt.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj= /BUILDs/main-CA7-nodbg-clang-alt" \ = make-main-CA7-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/main-CA7-nodbg-clang" \ = make-main-CA72-dbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUIL= Ds/main-CA72-dbg-clang" \ = make-main-CA72-dbg-gccxtc.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BUI= LDs/main-CA72-dbg-gccxtc" \ = make-main-CA72-nodbg-clang-alt.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/ob= j/BUILDs/main-CA72-nodbg-clang-alt" \ = make-main-CA72-nodbg-clang.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/BU= ILDs/main-CA72-nodbg-clang" \ = make-main-CA72-nodbg-gccxtc.aarch64-host.sh:MAKEOBJDIRPREFIX=3D"/usr/obj/B= UILDs/main-CA72-nodbg-gccxtc" \ =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1B5FCF8A-0DFD-4246-8464-65A44A40529F>