From nobody Mon May 5 22:18:39 2025 X-Original-To: freebsd-current@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 4Zrwst4qwhz5twds for ; Mon, 05 May 2025 22:18:58 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic316-55.consmr.mail.gq1.yahoo.com (sonic316-55.consmr.mail.gq1.yahoo.com [98.137.69.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 4Zrwsr2d9wz3wQq for ; Mon, 05 May 2025 22:18:56 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b="cMY8/3AW"; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.69.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=1746483533; bh=hCURL8pqavLKH9zH+EwfxNLPc3Z75wpsIbje8E4QCRQ=; h=From:Subject:Date:To:References:From:Subject:Reply-To; b=cMY8/3AWwaYxfrOOq6fNxoS8764C7VOr46iHqy8XoC7wJ2qGTbQac+rn1n22m7Y8HWdNT/V760QNOttI7Iu1vr0t+sqTwv+58Ixy9CV95ag+JpIGdAG91JlA/1D/sn3u9iYTzfCQ9FTcs7BJEQ9gQwtqbq8Kku1tZ6sC3o64Vx9+qnBfNd1se5PwtTs93duquigDy97Yqea6GxW7C2/ERx46buL6d1rj6f/Tp8hKaPBuG4F6n42Q6J+dPLHU0tCvX5uJu8xZ4wHPCp50gGDH4Evst7yNEgzo3nrWR0yNzXtbZQQM7N68RzQU0DpdD6R5Gf6JMK/ribwUdnRUng9Dnw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1746483533; bh=FBx1PzIDx8DY566R/5SibAKwCSGNxRdAbIJd+8cbtmt=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=E/loagzNsm/IOCLv+dlOm7yh6yVu5yCgyYK7nBRAN5IcwDM0nZ9g2t5RYJIeLLy+hTFsU17yFxSue3Vg6FymKjGigV3zij2K7Bkbq1rxIkd1qBUmcLW/GEG4r65b+My1hTO81xFrjlhDkH6LfxOrD56G6ZOvm/NnSO1NSr0DCdqlK0NtcdKymXPOYISMv4GpmD/CmMlo+8Eb26M8fpPFI0gfQGeJrJumHDHvSFZ24+0tQw6YoFI1nqXkYNiphOdSyQpK8kQDNNvhQFK4+AG/8le/XOhXlvYyBjANwlNQCq+zE1qpaPTzRF7Gv+E7sJ2h92mB8N4lsJO9i53AQfQHeQ== X-YMail-OSG: ABsNMfwVM1lXMygKbVsXsqciqFeTEQd6AePPECEzDfqvvVu9amiqbzQijUrrx.h EMFAOSus3v1mBy7pM.9Fhp9APOzx6qRVqkAv3Su7BZ2UDELCPJDAYduxWJqeU8xuVjw7n9QxC9B8 Jt71cUZBMangOVfzQQ8wZMfVYJ9hjKrdsHvY_8EF4m8e_G6fmX3DMJVHwn09sn.RP0NGhLJdQdZi E_46Wo0Ax3KWZN.6UlsI.iC42UXkqg2CMMrvAk2U_FWWHaxby8Ul_2laKb_46Rn3CHNAqxZAMjLY ClWb_bRzOesIDBgxtx7yeklNM3qjs8Ptm5ZS1qFD4iiu5lhCAF7b.DtIz2GICnlExcD6kxpllfzW BUXcQB4WJ7NTUAS63dg4z5rVINEKW6Ut7Jz06oDE_JxXEXux7kkb_uCZNHf3nv.p6qAkZ4Z3VR_J QtByzhRQZe.pdoorSvrvEy6mh6a9rmUySyUDtjBVicZ5SExbMY2pbzxTQuMaRDMmsAK7bKTpb0Pn bzFMrv0OgHi1QIy6B93vKkInzqQ1gHHmuHFIDZVA9iVgAVVvJs7aGPXAlcbMu.WICfE5.r2h4Jju j2ov6pXZy99VLO.C.IaJ_3QP61vxl0.arJBeY2Pt2bCAxW3UGE3M7Of.LT8JgadJHjcMiKxJlamN D153Su5slOO.hp.Tko_FcCgssvTaa5bmNBVbvEsQ9myidzoJXuyvp.__cc1g6vucer1aZr1GhqFN YsreFUHmSZr6Q6EfCDKgu.MTmDdNgPlR2lStem0ujjGAm4MT40Ra1VydoIUpWpoxZSbtX31MiMCN j5gA4NjeR8UeyGEU0P.0o4MmMH44wj6BcYsuas_9dj.oXPwTP9_khrL4NdIYrB8vnhV8VHRxz95h zNcub.CbHJaRNSfyl.yt2lPOZxr2H2_a.Qfb28rMm29t4Gn92qHUa2EzoqglfOuMFt5kpxKx_jzz 8kHQnwaKl_c.X4fOZNIj6CctVJIJKYTP97GY5Ax8KTxmXxLn3q681D8HCvVG7fSvXFinqbirJju_ BwGGhNx2ITmVhv1k0LQmw6y2xpacu4YyO_HMbqtbTEG9UM2oK.H5nZ53cqZOaURf0tcrBabPj8Rl S6esytPpmMuPMtA1unzIPrOKdFomMpwxu82LjeyzrTyH9oRTx6Xls11MZTof_vYLTpokM95tRIB_ xXN4mWgW_XvahNihy0RxFjg.Rx6mnYuEXG1PBRG2b7dCXhNMGUNjwpQsPheSMLHlV18sK9tW2ClR Vy0ehrOUWQOh4p1BMD_69MasX8JBgkbxvD29O25KXr.AzmEmxrqM2uIVEmCqWKvZuwYIFseiIXC4 DE646Ro8dRpCqUiLhJ2uiJuaZ_iyAwgnUuH8s0z0A4WZOMLmIZJM_PYZM0jXE4AHSMuL4aIx.Fva bOlbf.3l23uXO996sHMKJmMXUQ14tcMaJ09AEbnuo_KNe3K0Jr2_zpBe0na5Y3kINMh7AWXXGwJj Fj2Oe6k34iO_iGslR8ATtMJ_b5cGAcgHoj514sIQorlqIUdI48zTRYc1t5m61SSoR7_VutKMJCVt r8Gzq9G0WG1DPFYGshFsCRLC6S8.C_TaDMfVo7GfHh8oljT1xXNetu8zpG5RHTu8DtPJJ0ZeepH4 QjJkewC0tyycr8i35jYuEg_QlvB6Vg_1.cMlYa6fP9tQeqvGPAiEbgLmMFNDp1wd2WVzosci3f_b TYGlqV2u9U5j9rLNUCkhPlrIEa2BPhqak5Cm8fFqWsubQ1d_1NKPlWZ9_C5DoVYiBYpleD2HkwFp iAkCFeELUV8Li4J2jhwrkxPqKXpYQ5UrITYEJEYkIynMwAYp6PvtHmVkQBa7UfpwA6L_W.BoBT2e pfEDcFO0vDDsaWTiRwUFfBtD7LyhEFglFK.HjxFKa_salPptzwouwc9NaBgkQSsDZ28JVtb53A35 2QqPybnDiF1cB2I6wW3UPLYsXd6jP97bToF0hkh4Q5TZBLpCWSBzyABEoZpHuI84aMScxJk18GA2 Mx4n7b9CxA.tTONKIroz4SutC6rPUJrRUIoD_3.zZCCXraxvLoCH32lawbjfFoyDCkrRQkI9gI4t Q0x4ddQSJ0ZBi4ng0pc2iuGUMLYwy0cmrEcfsnxqqY3wDY6wWinp2OuZvPuP9aC_4D7TQqB3VibB KUQbdAvKv2Fyf2Rcnr726xvBtIOkMoNQPhYl0WGOneEmmOVtKxAWiqdKUn4qS6ZfwpG2zO0JMSLB WfA80sXd5my360Fdl8mLIP59boWvYXX7PRt6w.4ruuBnjYJtmO1ker4.OPjnIjvp.DgpMkop3.p8 Tkmbi X-Sonic-MF: X-Sonic-ID: e1078256-88cd-4fbd-90a5-761e903bbe98 Received: from sonic.gate.mail.ne1.yahoo.com by sonic316.consmr.mail.gq1.yahoo.com with HTTP; Mon, 5 May 2025 22:18:53 +0000 Received: by hermes--production-gq1-74d64bb7d7-x7xzm (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID e593cfe36692bc8df760ecc5e898ada0; Mon, 05 May 2025 22:18:50 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.500.181.1.5\)) Subject: Re: incremental bulds from scratch with beinstall.sh Message-Id: <28F2BDE7-5903-4C04-A570-6A407F19D5F2@yahoo.com> Date: Mon, 5 May 2025 15:18:39 -0700 To: Nuno Teixeira , FreeBSD Current X-Mailer: Apple Mail (2.3826.500.181.1.5) References: <28F2BDE7-5903-4C04-A570-6A407F19D5F2.ref@yahoo.com> X-Rspamd-Queue-Id: 4Zrwsr2d9wz3wQq X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.20 / 15.00]; NEURAL_HAM_SHORT(-0.99)[-0.991]; NEURAL_HAM_MEDIUM(-0.92)[-0.924]; NEURAL_HAM_LONG(-0.78)[-0.784]; MV_CASE(0.50)[]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; TO_DN_ALL(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWO(0.00)[2]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; FREEMAIL_FROM(0.00)[yahoo.com]; FROM_HAS_DN(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.31:from]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.31:from] Nuno Teixeira wrote on Date: Mon, 05 May 2025 20:37:09 UTC : > (...) >=20 > Don't forget to `env NO_PKG_UPGRADE=3Dyes beinstall.sh` to not mess = with > ports and stuff. >=20 > Nuno Teixeira escreveu (segunda, 5/05/2025 =C3=A0(= s) > 21:34): >=20 > > Hello, > > > > Using incremental WITH_META_MODE builds, after installation with > > beinstall.sh, building same src, a complete compilation happens. > > > > If someone uses this script, could you please do the following test: > > > > WITH_META_MODE=3Dyes (/etc/src-env.conf) > > filemon module loaded > > > > # cd /usr/src > > # make buildworld-jobs buildkernel-jobs The above used older commands and files from before the following install. META_MODE recorded the use of those commands. Example .meta mode file content: # Meta data file = /usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/lib/libc++/li= bc++.a.meta CMD @echo building static c++ library CMD @rm -f libc++.a CMD ar -crsD libc++.a algorithm.o any.o atomic.o barrier.o bind.o = charconv.o chrono.o condition_variable.o condition_variable_destructor.o = debug.o exception.o filesystem/directory_iterator.o filesyste m/int128_builtins.o filesystem/operations.o functional.o future.o hash.o = ios.o iostream.o locale.o memory.o mutex.o mutex_destructor.o new.o = optional.o random.o random_shuffle.o regex.o shared_mutex.o stdexcept.o string.o strstream.o system_error.o thread.o typeinfo.o = utility.o valarray.o variant.o vector.o cxxrt_auxhelper.o = cxxrt_dynamic_cast.o cxxrt_exception.o cxxrt_guard.o = cxxrt_libelftc_dem_g nu3.o cxxrt_memory.o cxxrt_stdexcept.o cxxrt_terminate.o = cxxrt_typeinfo.o CWD = /usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/lib/libc++ TARGET libc++.a -- command output -- building static c++ library -- filemon acquired metadata -- # filemon version 5 # Target pid 22471 # Start 1611359217.214996 V 5 E 22961 /bin/sh R 22961 /etc/libmap.conf R 22961 /var/run/ld-elf.so.hints R 22961 /lib/libedit.so.7 R 22961 /lib/libc.so.7 R 22961 /lib/libncursesw.so.9 R 22961 /usr/share/locale/C.UTF-8/LC_CTYPE F 22961 22962 E 22962 = /usr/obj/amd64_clang/amd64.amd64/usr/fbsd/mm-src/amd64.amd64/tmp/legacy/us= r/sbin/rm R 22962 /etc/libmap.conf R 22962 /var/run/ld-elf.so.hints R 22962 /lib/libc.so.7 R 22962 /usr/share/locale/C.UTF-8/LC_CTYPE D 22962 libc++.a X 22962 0 0 . . . So META_MODE has lots of files that were used that it can later detect being newer than the prior build results, leading to rebuilds based on those newer files. > > # ./tools/build/beinstall.sh The new be will have various updated files that could be different by content and, for commands, could behave differently than those used to do the prior build. Detecting newer time stamps on such used files leads to rebuild activity. More than /usr/src/ and /usr/obj/ content are involved as well. Note that the new be is based on somewhat different files than the original buildworld-jobs buildkernel-jobs was based on. > > # reboot > > (I presume booting into the new be here.) > > # cd /usr/src > > # make buildworld-jobs buildkernel-jobs META_MODE will notice when commands are used that are newer than when the prior build was done. Similarly for other files that may be read. It will make sure that the newer commands and files are allowed to produce new results that potentially could be distinct in content from what the old context produced for results. > > > > Since src and obj are the same from one BE to newer BE, minimal > > compilation should happen, not a full one. META_MODE is more careful than that. Note: I'm not claiming that new behavior that is needed is likely for lots of the files with new dates. But META_MODE is biased to avoiding leaving in place something that should have been updated. > > > > Am I missing something here? > > Note that make has a -dM option: M Print debugging information about =E2=80=9Cmeta=E2=80= =9D mode decisions about targets. So, for example, 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... . . . Various . . ./tmp/legacy/. . ./*bin/ actually were links to files. Ultimately buildworld then installworld lead to new dates for a bunch of files used. Later use of META_MODE notices such and rebuilds based on the newer files. (It is a lot of detail to go through it all.) Back in 2021 and 2023 I got help with exploring avoiding lots of these. But, in the end, it involved use of experimental code in share/mk/src.sys.obj.mk to provide a new definition to use to build some paths with. The experiments were an unsupported activity that produced an unsupported change to allow configurable enabling of taking risks with not updating files that possibly should be updated. =3D=3D=3D Mark Millard marklmi at yahoo.com