From nobody Mon Mar 09 14:42:17 2026 X-Original-To: dev-commits-src-all@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 4fV08n4gfXz6VqTr for ; Mon, 09 Mar 2026 14:42:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fV08n1jVtz4Hrw for ; Mon, 09 Mar 2026 14:42:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773067337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7fAGku/mM5nqxOIvLoxlB6OqQ5dqfHwwZHND0SJeA+Y=; b=v4CphESEmogXWPc5xPN+n4LQ/cGJFnBuL7x533rCDQIfk50unl+AZVYS5S4o5/fYTMy1h9 EQnC0OlLN2IURXGuwcNrcgvaZSJt6aulWklX/agXUcWczbNoNY/AP9RThIbEUSu2zQCUlU 50YbDP7skpLi9q/f0FTRK2lAZnvtRU89DzQAZ1ooqkZo2vbS/dOOm5yc8DycW6ZVp95ixV pb1VFiLM30cf9rBCwTI4bIEGx78Jlf5k23BsJdz/n57NxPalnanMl6HME3YshHaCDM6NbE 6XZXkiGW+AzUTza7x4DP0F7J1byMn1dvs27h6scWRakzP86gi+Ii22+kwFkkdw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1773067337; a=rsa-sha256; cv=none; b=U5mBrHvtc54kMFO+sIRXoYvfBFisjh1uAecnMynmaFNl+TWqeETXUxpkOciBvJ6TJc2ZBK OKtaz597MOpRHvkgHxSzDAlkrNvJaeNrO0Y/6tTQaz2ZKR2Vor+p1JOQ1qxh3f21GpPhlK zI6PtMv5UGyCugiHfFdMiQVeG0DWBY6gxsvmIukkwxd4hfDuPVQSYXiDt2xc0Y7ZXDvtL9 PZs5gJL5Mqqt8TLfwigV1GwpD3wCzq3FB0O8wI6pAA/MRpOkFLy+kFs+1SBp8/q/5E+qNb ykxkVjoFMwNiNS+EouaFBiwolBPoOWx+YQyCU/3jcfZs2i08QMVhxAufkQHe1g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773067337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7fAGku/mM5nqxOIvLoxlB6OqQ5dqfHwwZHND0SJeA+Y=; b=ZpwgRsmbwEuQ7OdAyjQbgBM8JFpECLbG2WTN6F7AnB6ZSpoU4hqKrZWPztQa+bN1mulyp3 Drt8AVq3FoQ2tZ4BXvAGRgljujiywEEOSlj45pNq3JrhcslxCIYZwpJgKdQa9mAs+LHK7p MwGkT/R6gM76sHl5jp8HMGUzDu3aNRFGIuZOxgqWFbjT9IliiK3ber6s392jgXlVRLi3DI oXTj7fDJXMuT/wA5Wcch7FUzT/E0Ck0Eppvv0Rx7Kj16eTq36wWwjNRXvyDeblwKQXhk1M PDKLanqIN7U4eoqp32syTxMBHQB8GQTXhKC8W1J037/rh5IfHDg5xN5b8z7MFg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fV08n1Cw7zDYY for ; Mon, 09 Mar 2026 14:42:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37067 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Mar 2026 14:42:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Bryan Drewery Subject: git: e2ed7ee02f6b - main - bsd.progs.mk: Fix incremental META_MODE for prog sources List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bdrewery X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e2ed7ee02f6bda705a7c8df3c512c6a43db56830 Auto-Submitted: auto-generated Date: Mon, 09 Mar 2026 14:42:17 +0000 Message-Id: <69aedc49.37067.7a1d68b1@gitrepo.freebsd.org> The branch main has been updated by bdrewery: URL: https://cgit.FreeBSD.org/src/commit/?id=e2ed7ee02f6bda705a7c8df3c512c6a43db56830 commit e2ed7ee02f6bda705a7c8df3c512c6a43db56830 Author: Bryan Drewery AuthorDate: 2026-03-07 16:38:47 +0000 Commit: Bryan Drewery CommitDate: 2026-03-09 14:38:40 +0000 bsd.progs.mk: Fix incremental META_MODE for prog sources This fixes recursed builds not having meta mode enabled for them which disabled dependency and and command change tracking. We only want common objects marked .NOMETA when recursing, not non-common objects. The common code expects _PROGS_COMMON_SRCS does not contain the prog source or else it will be marked .NOMETA. Add comments explaining the intent and cases being covered. Fixes: 4ea5e107b1 (": Allow using SRCS for common sources") Differential Revision: https://reviews.freebsd.org/D55711 Reviewed by: vexeduxr, sjg --- share/mk/bsd.progs.mk | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/share/mk/bsd.progs.mk b/share/mk/bsd.progs.mk index 007e8a843944..2c6f6df33279 100644 --- a/share/mk/bsd.progs.mk +++ b/share/mk/bsd.progs.mk @@ -14,6 +14,7 @@ # we really only use PROGS below... PROGS += ${PROGS_CXX} +_save_srcs:= ${SRCS:U} .if defined(PROG) # just one of many PROG_OVERRIDE_VARS += BINDIR BINGRP BINOWN BINMODE CSTD CXXSTD DPSRCS MAN \ @@ -91,8 +92,29 @@ $v = # Find common sources among the PROGS to depend on them before building # anything. This allows parallelization without them each fighting over # the same objects. -_PROGS_COMMON_SRCS= ${DPSRCS} ${SRCS} -_PROGS_ALL_SRCS= ${SRCS} +# +# There are 3 cases to consider. +# 1. No common sources. +# SRCS= +# SRCS.prog1= prog1.c +# SRCS.prog2= prog2.c +# 2. Common sources in all SRCS.$prog. +# SRCS= +# SRCS.prog1= prog1.c common.c +# SRCS.prog2= prog2.c common.c +# 3. Common sources in SRCS. +# SRCS= common.c +# SRCS.prog1= prog1.c +# SRCS.prog2= prog2.c +# The intent is: +# a. Only build common objects in the parent make before recursing. +# b. When recursing only build non-common objects. +# c. When recursing disable meta mode for common objects so they are not +# inspected. +# _PROGS_COMMON_SRCS is expected to only contain common sources both +# in the parent and when recursing. +_PROGS_COMMON_SRCS:= ${DPSRCS} ${_save_srcs} +_PROGS_ALL_SRCS:= ${_save_srcs} .for p in ${PROGS} .for s in ${SRCS.${p}} .if ${_PROGS_ALL_SRCS:M${s}} && !${_PROGS_COMMON_SRCS:M${s}} @@ -115,6 +137,7 @@ _PROGS_COMMON_OBJS+= ${_PROGS_COMMON_SRCS:N*.[dhly]:${OBJS_SRCS_FILTER:ts:}:S/$/ ${_PROGS_COMMON_OBJS}: .NOMETA .endif .endif +.undef _save_srcs .if !empty(PROGS) && !defined(_RECURSING_PROGS) && !defined(PROG) # tell progs.mk we might want to install things