From nobody Fri Feb 24 20:22:58 2023 X-Original-To: freebsd-stable@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PNhD32nCqz3ttnc for ; Fri, 24 Feb 2023 20:23:15 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic307-55.consmr.mail.gq1.yahoo.com (sonic307-55.consmr.mail.gq1.yahoo.com [98.137.64.31]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4PNhD20BcVz3pPH for ; Fri, 24 Feb 2023 20:23:13 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=K85Em4JE; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.64.31 as permitted sender) smtp.mailfrom=marklmi@yahoo.com; dmarc=pass (policy=reject) header.from=yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1677270191; bh=NpSikILJV1Ivh5gWmlRYBerwd42eZKltE/LonnGGZbs=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=K85Em4JEN8umysPVTRhDgfd5/xpXd07XCnZqNIYVLdyqx+Cwdx8UvP34dqhcqTE75wkGC85c6DCrKoEHKwjG48MCWMQTaw+OYBH5QFJsdcPSysLL4tAMr8HQAnllf97g2t7hZZtKy0hVWuwBQ6Y6c2E/wEPiuExIe/sI9XX8C3H9DiKjfWiWawcxmw1aJvyAzpXBswNhYYSaizKevCDfoQhaPtTEPh3vIB6793FplO5IHlJfAeqwStOTEU3lWCOiUln3CJAjFf2fiQCEWoy1UftL9QsVzm+66Rs18sztt9xh4vEnYJl7QKcYqOCAbqkF6YELvqsfiNpsQS1/mkGhoA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1677270191; bh=D5+xDzR4U7DI44OYP2MgRLvA7OxXJspfzEaNxTWIR6x=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=Fsp8cYC08ju9h0VaA3yPSBiXiy7PWB3opanxY3aerRhJgfb2rcGl+7Q60VjvjVTpEUma7FqvrCresiV0QECb5XgNeQHkFHCPw58Sd/7cczUV0jsAcLEmakXb9Ghi9WnD0Wmb40UU/3eSAjCsZLCGYQhpGfJSl9XkIw7t1BWfgt3UMIH15nbkKKKIfIFZJp0ChhM8lIewLqR5newc0hYnpCdVdYJy83X3+s5Xpy3Fg9EzEoBrDMZOktHik5BpmBRgqxrW+nP/ZLGRReMG331+zrv2ue3VtOrYfaD7Tp2u4FGPxrz2lqDwFbzkVtwceslj6jvOc7giZhTWu8Tm4NI95w== X-YMail-OSG: wmo4NsMVM1mjDLQn1JNep8.23bLQuhnmLrMvF.b_pU2iOlpzRvjKsXBuxHLZCV8 71nfVd.ntUS_Waptx2yspDkJKpB1qQs6xqCf3aaegmThr60fxfNm97Yo8f1p6xhSd07ym3t_PSZp ZmKpn48zXUG_OQXgJMUJm.KRv5ho5taUIA_fJTChYIEUiU98YTBXrnoBME73NlbW62WdkmqcRWS7 ICho5TqjhB0RcXgcc36WUhqxw8knHYKyMwWNQ_KYYBdjosKABYEEkFgO6o.eUT5y76xXJp1x9JVb vgkIQw4z8pHhcVsGDnCqIZ8e1r8qbmxmllbrXnSwQ2gAu_898fvfInKPFpMsaKeyGfckmhcOmqfv u5zjVFDxkoHK8FaF8OWmrR9l5wNjx43xDK.w9y4QY.uPTwvLUpL1JNwRGJlHdYysS6puvsZxADu5 37h3M4DcKFKBe8t.ZeRMWC0RmB4QQSry5BVi3pQ6_E5ZSuD3yZgerAIhNtPIINVTgkP5DQQ5QMJJ 8wOiYobMqSH2vZYdIvRBbdbTQTd3rcxxKxXzoF_sbCnGTsSnkHUbc61MONRKqW0DGmobbOsDcDYT tIib939h2lyzhVuoW9TEZIrune468_BD1QnQ4F2Aie6p8oqy3grZz.GSKonh1IinFKlbZ0_Y.fRW 0_.zEbXkvZWGxZ9agVhFv0ypyyq.eM42bHyVrEZtan4uzumBx2oU3p5gFmAYFMEieYJUgSYPw_P4 LJoAhVQC9tEdCxWwA3uJaTxuKdabznisQOAQUb5Gfk7nqyltYpFgC1hO9fGza28bE_aM12OPEAj7 0EDbg4qswKFDsV8CLJS9kftajhspHd8KP__wejtmVylUE92X7CHBlpf.jcuW4HNHfdCsIgb9p1jP bd21.ZrgX7shzb5ymPSOK3fGIvwKTZXYB4SCPd8mJM2eCYaxUGIjKsXC28d4oGuGjXAVh1An3I2D 4qm2529idPaVR._Hz778dMCFfUtkRCXTuS.UnAuXfyylvfBtwkH3GffXptTFn02RNsJrqkoWQk7s oyJ47wOHAcr.JH2vYQntsdwKyChR9w1.9IMHE9YYlTDaT5f_UpnkBG900nXh7X3QZ14OQf7oxV_D KHqx21EVGmbrqjad._m6hQbYIE9HBXf7oknscGFoGho0t5FLRJYG9dgQW4wfFUnW.6djoDE.X.e3 STORdV6TfXX1YyAqr9oSfuBkIk0mWaSKzqi37pAc6wpS0X7Kv5BDtWoePp8FIbNuRd0v5fhiWV6W RReWWvnx7QzgCkn29SEPKA9Y5An09A5Ctxtpi2wZVt_rKB_VZvWzRBE39KcMoEs5ivhUAhkwwKrv fz8hcUBCUQeUaG6K_xDFqGW5fh53X.qMVqD4gFQI_s_aQfIL0y7XcJiPLrEwL2WUfBgOmY9etmOS V48Q69wuHoEUDcNsaB8Zivtwm2_NtoO09oq5_P6mOeVKXkV.7ucB1wB2mBAQpJ6GsVVBnwwWsQvn BKf27l6jGggJmsmJQ4xyuPnXBpftEUyYdRI5MJVYPJbSECCsYfpOCO1n7C5iC.ZeOz1Cd4f55Iri 7g0LDX8_NMvfKrqUsB6wHafDC8v8Fps3CLW9fsPo.EqYXqUM4abLWr.44Jw4WHZ9NZMlVgZKLKKA sNGwDjyMUjDuo.9w5GfPr7Ske4jXfdEUB8AUitmMEYEj9OjBbeWbD2gRaxBhfEL7OTmkHILGh6rk VNKpe0r0amDHSe0dO6NX_Z8jAMYMxVlKZIMCLdC_F8Ght7rbvTf6lj8GMesayLX5Hqm_Qh.oKR1d PR42nh8EIQ1AYAqLA_g6RqtnVGvTlqJwUxnKza3K.25bGG6MMZuNGx8T_RgKC0E37a35eusmLj97 zJwhmYgVnuTZatyh6JgS95hC0qAQfOE4HCIUszRFfRH5oojK3E8VbwmYBFKOmOV4H1uQtUIULK6Q OjzkzuMPkBCVe0vvw3qHDfDI7Js775ffMotYwiImqbilA4JbKy31B_DlQi7AR93hs01oKnq5mxxE S70P_d1XeDFTqYVkqYZKkAoQZuB6Ry8sARAawC_1aM5dD3L.Sf725UwN7WNrRPeIkXrY2a7x4xrz _CcudT.7gzHS_IFVeP_7W5zb4koAjSqVbX_0bkMyIoufq4hp1iiKfEJAsCsU_MzHO0TV6kYZA75q kpsWXxVMebLZzt5m3TjVHqXekdYaGKmw_sziV5n9jSvGiDBWG7QtnX58Vxw5_kLyLVPnIel5nRHJ zWVEn07q5atvwkbBuU2.fdTBCtlj7yVmjcLmQ4MdrNN2HNWlv6dbfgbGd884U3vHF4fz8DgXUHbm W X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.gq1.yahoo.com with HTTP; Fri, 24 Feb 2023 20:23:11 +0000 Received: by hermes--production-gq1-655ddccc9-mpbsd (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 78226546d8a8caab42d02ed9a2d9effc; Fri, 24 Feb 2023 20:23:09 +0000 (UTC) Content-Type: text/plain; charset=us-ascii List-Id: Production branch of FreeBSD source code List-Archive: https://lists.freebsd.org/archives/freebsd-stable List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-stable@freebsd.org X-BeenThere: freebsd-stable@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.400.51.1.1\)) Subject: Re: 13.2 BETA2: how do debug META_MODE? From: Mark Millard In-Reply-To: Date: Fri, 24 Feb 2023 12:22:58 -0800 Cc: FreeBSD-STABLE Mailing List Content-Transfer-Encoding: quoted-printable Message-Id: References: <41B536B0-DA66-449E-96BB-E11A8750471A.ref@yahoo.com> <41B536B0-DA66-449E-96BB-E11A8750471A@yahoo.com> <45A1D65C-22F2-44B2-8B3D-5B6FECA76D0A@yahoo.com> <68EA9ADD-9269-4C60-B4CB-AD3AB0955772@yahoo.com> To: Peter X-Mailer: Apple Mail (2.3731.400.51.1.1) X-Spamd-Result: default: False [-2.44 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.94)[-0.936]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; RCVD_IN_DNSWL_NONE(0.00)[98.137.64.31:from]; TO_DN_ALL(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_FROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; DKIM_TRACE(0.00)[yahoo.com:+]; FROM_EQ_ENVFROM(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_TLS_LAST(0.00)[]; MLMMJ_DEST(0.00)[freebsd-stable@freebsd.org] X-Rspamd-Queue-Id: 4PNhD20BcVz3pPH X-Spamd-Bar: -- X-ThisMailContainsUnwantedMimeParts: N Simon J. Gerraty figured out what to do to allow avoiding . . ./tmp/legacy/usr/sbin/ leading to "is newer than" and, so, causing various things to rebuild. It required an addition to the infrastructure ( share/mk/src.sys.obj.mk ) so that the proper paths could be systematically formed for the purpose. The below is based on using that and some content in a just-for-buildworld-buildkernel make.conf file that I use (via env __MAKE_CONF=3D use). (The make.conf is not the one in /etc/ .) After installworld installkernel then a separate -dM buildworld buildkernel , looking at the log from the buildworld buildkernel : # cat = /usr/obj/BUILDs/main-amd64-nodbg-clang/sys-typescripts/typescript-make-amd= 64-nodbg-clang-amd64-host-2023-02-24:11:13:18 | grep "is newer than the = target" | sed - e "s@^.*: file '@file '@" | sort | uniq -c | sort -rn | less 1467 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/Scrt1.o' is newer than the target... 515 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/crti.o' is newer than the target... 236 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/crti.o' is newer than the target... 70 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libgcc_s.so' is newer than the target... 69 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libgcc_s.so' is newer than the target... 68 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/crt1.o' is newer than the target... 3 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/i= nclude/aio.h' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libssl.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libcxxrt.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libctf.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libcrypto.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libc.so.7' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/Scrt1.o' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libssl.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libcxxrt.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libctf.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libcrypto.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/lib/l= ibc.so.7' is newer than the target... Then, after doing another -dM buildworld buildkernel , looking at that new log: # cat = /usr/obj/BUILDs/main-amd64-nodbg-clang/sys-typescripts/typescript-make-amd= 64-nodbg-clang-amd64-host-2023-02-24:11:20:54 | grep "is newer than the = target" | sed - e "s@^.*: file '@file '@" | sort | uniq -c | sort -rn | less 1467 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/Scrt1.o' is newer than the target... 515 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/crti.o' is newer than the target... 236 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/crti.o' is newer than the target... 73 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libgcc_s.so' is newer than the target... 71 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libgcc_s.so' is newer than the target... 68 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/crt1.o' is newer than the target... 3 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/i= nclude/aio.h' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libssl.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libcxxrt.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libcrypto.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/libc.so.7' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib32/Scrt1.o' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libssl.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libcxxrt.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libctf.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/l= ib/libcrypto.so' is newer than the target... 1 file = '/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/lib/l= ibc.so.7' is newer than the target... So the two end up very similar for what activity happens. I've only tried this on the amd64 context that I have access to. I'll set up the aarch64 context as well and see how it goes over time. (That context builds for aarch64 and for armv7 .) Similarly, I've only tried main but will be adding the changes to my releng/13.0 , releng/13.1 , and stable/13 contexts and seeing how it goes. (Not that I'm likely to rebuild releng/13.0 at this point.) For now, I've no plans for investigations related to any of the *.o , *.h , *.so* "is newer than" activity listed above. For reference: # git -C /usr/main-src/ diff share/mk/src.sys.obj.mk diff --git a/share/mk/src.sys.obj.mk b/share/mk/src.sys.obj.mk index 3b48fc3c5514..3c7e570dbdbd 100644 --- a/share/mk/src.sys.obj.mk +++ b/share/mk/src.sys.obj.mk @@ -67,6 +67,9 @@ SB_OBJROOT?=3D ${SB}/obj/ OBJROOT?=3D ${SB_OBJROOT} .endif OBJROOT?=3D ${_default_makeobjdirprefix}${SRCTOP}/ +# save the value before we mess with it +_OBJROOT:=3D ${OBJROOT:tA} +.export _OBJROOT .if ${OBJROOT:M*/} !=3D "" OBJROOT:=3D ${OBJROOT:H:tA}/ .else (The change is not specific to main .) The content for the special make.conf has the following block of lines for having META MODE avoid specific . . ./tmp/legacy/usr/sbin/* programs (and 3 tmp/usr/bin/* ones) from causing rebuild activity based on the dates on the programs: # _OBJROOT is an addition to share/mk/src.sys.obj.mk # provided by Simon J. Gerraty for my experimentation # with this avoidance of some unnecessary build # activity in META MODE: # # OBJROOT?=3D ${_default_makeobjdirprefix}${SRCTOP}/ # +# save the value before we mess with it # +_OBJROOT:=3D ${OBJROOT:tA} # +.export _OBJROOT # # TARGET.TARGET_ARCH for amd64 stays as amd64.amd64 for obj-lib32 = (correct for the purpose) # MACHINE.MACHINE_ARCH for amd64 turns into i386.i386 for obj-lib32 = (wrong for the purpose) # IGNORELEGACY_NOSYMLINKPREFIX=3D = ${_OBJROOT}/${TARGET}.${TARGET_ARCH}/tmp/legacy/usr IGNOREOTHER_NOSYMLINKPREFIX=3D = ${_OBJROOT}/${TARGET}.${TARGET_ARCH}/tmp/usr/bin # .for ignore_legacy_tool in awk basename cap_mkdb cat chmod cmp cp = crunchgen crunchide cut date dd dirname echo egrep env expr fgrep file2c = find gencat grep gzip head hostname jot lex lb ln ls m4 make mkcsmapper = mkdir mktemp mtree mv nawk patch realpath rm sed sh sort touch tr = truncate uudecode uuencode wc xargs .MAKE.META.IGNORE_PATHS+=3D = ${IGNORELEGACY_NOSYMLINKPREFIX}/sbin/${ignore_legacy_tool} .endfor # .for ignore_other_tool in ctfconvert objcopy nm .MAKE.META.IGNORE_PATHS+=3D = ${IGNOREOTHER_NOSYMLINKPREFIX}/${ignore_other_tool} .endfor # .MAKE.META.IGNORE_PATHS:=3D ${.MAKE.META.IGNORE_PATHS} The . . ./tmp/usr/bin/* ones ( ctfconvert objcopy nm ) may be more questionable than the . . ./tmp/legacy/usr/sbin/* ones. This likely will not prevent the likes of a system with clang14 -> system with clang15 transition having clang15 rebuild itself once the clang15 system is running and another buildworld is started. =3D=3D=3D Mark Millard marklmi at yahoo.com