Date: Sat, 10 Jan 2026 21:34:00 +0000 From: Simon J. Gerraty <sjg@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 1d00ba4aaacf - stable/14 - Merge bmake-20240508 Message-ID: <6962c5c8.24cc5.508f951@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch stable/14 has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=1d00ba4aaacfb001f17887529ebd6a7552a3f55a commit 1d00ba4aaacfb001f17887529ebd6a7552a3f55a Author: Simon J. Gerraty <sjg@FreeBSD.org> AuthorDate: 2024-05-14 05:17:23 +0000 Commit: Simon J. Gerraty <sjg@FreeBSD.org> CommitDate: 2026-01-10 21:33:11 +0000 Merge bmake-20240508 Merge commit '3c2ab5fddc576e58f3ffa70dc5fa95144646a513' (cherry picked from commit c9f4001f81c4d5778f70f77dc9892d1c4ecfdcdb) --- contrib/bmake/ChangeLog | 8 ++++++++ contrib/bmake/VERSION | 2 +- contrib/bmake/job.c | 7 ++++--- contrib/bmake/main.c | 6 +++--- contrib/bmake/make.h | 5 +++-- contrib/bmake/mk/ChangeLog | 7 +++++++ contrib/bmake/mk/dirdeps.mk | 7 +++++-- contrib/bmake/mk/install-mk | 4 ++-- contrib/bmake/unit-tests/opt-debug-graph1.exp | 2 +- contrib/bmake/unit-tests/opt-debug-graph2.exp | 2 +- contrib/bmake/unit-tests/opt-debug-graph3.exp | 2 +- contrib/bmake/unit-tests/suff-main-several.exp | 2 +- contrib/bmake/unit-tests/suff-transform-debug.exp | 2 +- contrib/bmake/unit-tests/varname-dot-makeoverrides.exp | 6 +++--- contrib/bmake/unit-tests/varname-dot-makeoverrides.mk | 4 ++-- contrib/bmake/var.c | 17 +++++++---------- usr.bin/bmake/Makefile.config | 2 +- 17 files changed, 51 insertions(+), 34 deletions(-) diff --git a/contrib/bmake/ChangeLog b/contrib/bmake/ChangeLog index a2dd8dd5ed14..1ce033887c8f 100644 --- a/contrib/bmake/ChangeLog +++ b/contrib/bmake/ChangeLog @@ -1,3 +1,11 @@ +2024-05-07 Simon J Gerraty <sjg@beast.crufty.net> + + * VERSION (_MAKE_VERSION): 20240508 + Merge with NetBSD make, pick up + o make: ensure variables set on command line get added to + .MAKEOVERRIDES (even if they start with '.') so they are passed to + sub-makes. + 2024-04-30 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20240430 diff --git a/contrib/bmake/VERSION b/contrib/bmake/VERSION index 49a67b80073a..60aa9ae5069b 100644 --- a/contrib/bmake/VERSION +++ b/contrib/bmake/VERSION @@ -1,2 +1,2 @@ # keep this compatible with sh and make -_MAKE_VERSION=20240430 +_MAKE_VERSION=20240508 diff --git a/contrib/bmake/job.c b/contrib/bmake/job.c index 6f50c78169b2..541a61294766 100644 --- a/contrib/bmake/job.c +++ b/contrib/bmake/job.c @@ -1,4 +1,4 @@ -/* $NetBSD: job.c,v 1.470 2024/04/27 20:41:32 rillig Exp $ */ +/* $NetBSD: job.c,v 1.471 2024/05/07 18:26:22 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -154,7 +154,7 @@ #include "trace.h" /* "@(#)job.c 8.2 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: job.c,v 1.470 2024/04/27 20:41:32 rillig Exp $"); +MAKE_RCSID("$NetBSD: job.c,v 1.471 2024/05/07 18:26:22 sjg Exp $"); /* * A shell defines how the commands are run. All commands for a target are @@ -2190,7 +2190,8 @@ Shell_Init(void) if (shellPath == NULL) InitShellNameAndPath(); - Var_SetWithFlags(SCOPE_CMDLINE, ".SHELL", shellPath, VAR_SET_READONLY); + Var_SetWithFlags(SCOPE_CMDLINE, ".SHELL", shellPath, + VAR_SET_INTERNAL|VAR_SET_READONLY); if (shell->errFlag == NULL) shell->errFlag = ""; if (shell->echoFlag == NULL) diff --git a/contrib/bmake/main.c b/contrib/bmake/main.c index ea834bf669ed..fff294291ccf 100644 --- a/contrib/bmake/main.c +++ b/contrib/bmake/main.c @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.614 2024/04/30 16:13:33 sjg Exp $ */ +/* $NetBSD: main.c,v 1.615 2024/05/07 18:26:22 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -111,7 +111,7 @@ #include "trace.h" /* "@(#)main.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: main.c,v 1.614 2024/04/30 16:13:33 sjg Exp $"); +MAKE_RCSID("$NetBSD: main.c,v 1.615 2024/05/07 18:26:22 sjg Exp $"); #if defined(MAKE_NATIVE) __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 " "The Regents of the University of California. " @@ -1411,7 +1411,7 @@ main_Init(int argc, char **argv) Global_Set(".MAKEOVERRIDES", ""); Global_Set("MFLAGS", ""); Global_Set(".ALLTARGETS", ""); - Var_Set(SCOPE_CMDLINE, ".MAKE.LEVEL.ENV", MAKE_LEVEL_ENV); + Global_Set_ReadOnly(".MAKE.LEVEL.ENV", MAKE_LEVEL_ENV); /* Set some other useful variables. */ { diff --git a/contrib/bmake/make.h b/contrib/bmake/make.h index ff85ae4f41db..b7fcc77b91b3 100644 --- a/contrib/bmake/make.h +++ b/contrib/bmake/make.h @@ -1,4 +1,4 @@ -/* $NetBSD: make.h,v 1.332 2024/04/27 20:41:32 rillig Exp $ */ +/* $NetBSD: make.h,v 1.333 2024/05/07 18:26:22 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -1013,7 +1013,8 @@ typedef enum VarSetFlags { * except for another call to Var_Set with the same flag. See the * special targets '.NOREADONLY' and '.READONLY'. */ - VAR_SET_READONLY = 1 << 1 + VAR_SET_READONLY = 1 << 1, + VAR_SET_INTERNAL = 1 << 2 } VarSetFlags; typedef enum VarExportMode { diff --git a/contrib/bmake/mk/ChangeLog b/contrib/bmake/mk/ChangeLog index ee65ea0fadc1..4c3f4f4572c9 100644 --- a/contrib/bmake/mk/ChangeLog +++ b/contrib/bmake/mk/ChangeLog @@ -1,3 +1,10 @@ +2024-05-04 Simon J Gerraty <sjg@beast.crufty.net> + + * install-mk (MK_VERSION): 20240504 + + * dirdeps.mk: allow BUILD_DIRDEPS_OVERRIDES to pass overrides to + sub-make building DIRDEPS_CACHE. + 2024-04-24 Simon J Gerraty <sjg@beast.crufty.net> * meta.autodep.mk: do not override start_utc diff --git a/contrib/bmake/mk/dirdeps.mk b/contrib/bmake/mk/dirdeps.mk index b3b34145e8e9..7a9ecd881d7b 100644 --- a/contrib/bmake/mk/dirdeps.mk +++ b/contrib/bmake/mk/dirdeps.mk @@ -1,4 +1,4 @@ -# $Id: dirdeps.mk,v 1.166 2024/01/05 23:16:34 sjg Exp $ +# $Id: dirdeps.mk,v 1.167 2024/05/06 20:41:08 sjg Exp $ # SPDX-License-Identifier: BSD-2-Clause # @@ -581,6 +581,7 @@ BUILD_DIRDEPS_MAKEFILE ?= -f dirdeps.mk # these should generally do BUILD_DIRDEPS_MAKEFILE ?= +BUILD_DIRDEPS_OVERRIDES ?= BUILD_DIRDEPS_TARGETS ?= ${.TARGETS} .if ${DIRDEPS_CACHE} != ${STATIC_DIRDEPS_CACHE:Uno} && ${DIRDEPS_CACHE:M${SRCTOP}/*} == "" @@ -600,7 +601,9 @@ ${DIRDEPS_CACHE}: .META .NOMETA_CMP TARGET_SPEC=${TARGET_SPEC} \ MAKEFLAGS= ${DIRDEP_CACHE_MAKE:U${.MAKE}} -C ${_CURDIR} \ ${BUILD_DIRDEPS_MAKEFILE} \ - ${BUILD_DIRDEPS_TARGETS} BUILD_DIRDEPS_CACHE=yes \ + ${BUILD_DIRDEPS_TARGETS} \ + ${BUILD_DIRDEPS_OVERRIDES} \ + BUILD_DIRDEPS_CACHE=yes \ .MAKE.DEPENDFILE=.none \ ${"${DEBUG_DIRDEPS:Nno}":?DEBUG_DIRDEPS='${DEBUG_DIRDEPS}':} \ ${.MAKEFLAGS:tW:S,-D ,-D,g:tw:M*WITH*} \ diff --git a/contrib/bmake/mk/install-mk b/contrib/bmake/mk/install-mk old mode 100755 new mode 100644 index 97874ac49016..c2962ffee6dc --- a/contrib/bmake/mk/install-mk +++ b/contrib/bmake/mk/install-mk @@ -59,7 +59,7 @@ # Simon J. Gerraty <sjg@crufty.net> # RCSid: -# $Id: install-mk,v 1.253 2024/04/18 17:18:31 sjg Exp $ +# $Id: install-mk,v 1.254 2024/05/06 20:41:08 sjg Exp $ # # @(#) Copyright (c) 1994-2024 Simon J. Gerraty # @@ -74,7 +74,7 @@ # sjg@crufty.net # -MK_VERSION=20240414 +MK_VERSION=20240504 OWNER= GROUP= MODE=444 diff --git a/contrib/bmake/unit-tests/opt-debug-graph1.exp b/contrib/bmake/unit-tests/opt-debug-graph1.exp index 26777a671119..d01a98a31fdb 100644 --- a/contrib/bmake/unit-tests/opt-debug-graph1.exp +++ b/contrib/bmake/unit-tests/opt-debug-graph1.exp @@ -23,6 +23,7 @@ .MAKE.GID = <details omitted> .MAKE.JOBS.C = <details omitted> .MAKE.LEVEL = <details omitted> +.MAKE.LEVEL.ENV = MAKELEVEL .MAKE.MAKEFILES = <details omitted> .MAKE.MAKEFILE_PREFERENCE = <details omitted> .MAKE.OS = <details omitted> @@ -41,7 +42,6 @@ MACHINE_ARCH = <details omitted> MAKE = <details omitted> MFLAGS = -r -k -d g1 #*** Command-line Variables: -.MAKE.LEVEL.ENV = MAKELEVEL #*** Directory Cache: # Stats: 0 hits 2 misses 0 near misses 0 losers (0%) diff --git a/contrib/bmake/unit-tests/opt-debug-graph2.exp b/contrib/bmake/unit-tests/opt-debug-graph2.exp index a5a51413fd38..d4182650baed 100644 --- a/contrib/bmake/unit-tests/opt-debug-graph2.exp +++ b/contrib/bmake/unit-tests/opt-debug-graph2.exp @@ -57,6 +57,7 @@ all : made-target error-target aborted-target .MAKE.GID = <details omitted> .MAKE.JOBS.C = <details omitted> .MAKE.LEVEL = <details omitted> +.MAKE.LEVEL.ENV = MAKELEVEL .MAKE.MAKEFILES = <details omitted> .MAKE.MAKEFILE_PREFERENCE = <details omitted> .MAKE.OS = <details omitted> @@ -75,7 +76,6 @@ MACHINE_ARCH = <details omitted> MAKE = <details omitted> MFLAGS = -r -k -d g2 #*** Command-line Variables: -.MAKE.LEVEL.ENV = MAKELEVEL .SHELL = <details omitted> #*** Directory Cache: diff --git a/contrib/bmake/unit-tests/opt-debug-graph3.exp b/contrib/bmake/unit-tests/opt-debug-graph3.exp index ff88400668fa..fea3c658cb72 100644 --- a/contrib/bmake/unit-tests/opt-debug-graph3.exp +++ b/contrib/bmake/unit-tests/opt-debug-graph3.exp @@ -57,6 +57,7 @@ all : made-target error-target aborted-target .MAKE.GID = <details omitted> .MAKE.JOBS.C = <details omitted> .MAKE.LEVEL = <details omitted> +.MAKE.LEVEL.ENV = MAKELEVEL .MAKE.MAKEFILES = <details omitted> .MAKE.MAKEFILE_PREFERENCE = <details omitted> .MAKE.OS = <details omitted> @@ -75,7 +76,6 @@ MACHINE_ARCH = <details omitted> MAKE = <details omitted> MFLAGS = -r -k -d g3 #*** Command-line Variables: -.MAKE.LEVEL.ENV = MAKELEVEL .SHELL = <details omitted> #*** Directory Cache: diff --git a/contrib/bmake/unit-tests/suff-main-several.exp b/contrib/bmake/unit-tests/suff-main-several.exp index 4391610be742..d19a392f5962 100644 --- a/contrib/bmake/unit-tests/suff-main-several.exp +++ b/contrib/bmake/unit-tests/suff-main-several.exp @@ -88,6 +88,7 @@ ParseDependency(.MAKEFLAGS: -d0 -dg1) .MAKE.GID = <details omitted> .MAKE.JOBS.C = <details omitted> .MAKE.LEVEL = <details omitted> +.MAKE.LEVEL.ENV = MAKELEVEL .MAKE.MAKEFILES = <details omitted> .MAKE.MAKEFILE_PREFERENCE = <details omitted> .MAKE.OS = <details omitted> @@ -106,7 +107,6 @@ MACHINE_ARCH = <details omitted> MAKE = <details omitted> MFLAGS = -r -k -d mps -d 0 -d g1 #*** Command-line Variables: -.MAKE.LEVEL.ENV = MAKELEVEL #*** Directory Cache: # Stats: 0 hits 2 misses 0 near misses 0 losers (0%) diff --git a/contrib/bmake/unit-tests/suff-transform-debug.exp b/contrib/bmake/unit-tests/suff-transform-debug.exp index 5d632a22f80a..2e88db58bc8c 100644 --- a/contrib/bmake/unit-tests/suff-transform-debug.exp +++ b/contrib/bmake/unit-tests/suff-transform-debug.exp @@ -14,6 +14,7 @@ .MAKE.GID = <details omitted> .MAKE.JOBS.C = <details omitted> .MAKE.LEVEL = <details omitted> +.MAKE.LEVEL.ENV = MAKELEVEL .MAKE.MAKEFILES = <details omitted> .MAKE.MAKEFILE_PREFERENCE = <details omitted> .MAKE.OS = <details omitted> @@ -32,7 +33,6 @@ MACHINE_ARCH = <details omitted> MAKE = <details omitted> MFLAGS = -r -k -d g1 #*** Command-line Variables: -.MAKE.LEVEL.ENV = MAKELEVEL #*** Directory Cache: # Stats: 0 hits 2 misses 0 near misses 0 losers (0%) diff --git a/contrib/bmake/unit-tests/varname-dot-makeoverrides.exp b/contrib/bmake/unit-tests/varname-dot-makeoverrides.exp index 78c0296f8d76..21942ffdc96d 100644 --- a/contrib/bmake/unit-tests/varname-dot-makeoverrides.exp +++ b/contrib/bmake/unit-tests/varname-dot-makeoverrides.exp @@ -1,8 +1,8 @@ all: overrides=<> make -f varname-dot-makeoverrides.mk stage_1 VAR=value stage_1: overrides=< VAR> -make -f varname-dot-makeoverrides.mk stage_2 -stage_2: overrides=< VAR> +make -f varname-dot-makeoverrides.mk stage_2 .VAR=too +stage_2: overrides=< VAR .VAR> make -f varname-dot-makeoverrides.mk stage_3 -stage_3: overrides=< VAR> +stage_3: overrides=< .VAR VAR> exit status 0 diff --git a/contrib/bmake/unit-tests/varname-dot-makeoverrides.mk b/contrib/bmake/unit-tests/varname-dot-makeoverrides.mk index f3f3897f8aa4..966fcb7e0ec9 100644 --- a/contrib/bmake/unit-tests/varname-dot-makeoverrides.mk +++ b/contrib/bmake/unit-tests/varname-dot-makeoverrides.mk @@ -1,4 +1,4 @@ -# $NetBSD: varname-dot-makeoverrides.mk,v 1.5 2023/02/25 06:54:08 rillig Exp $ +# $NetBSD: varname-dot-makeoverrides.mk,v 1.6 2024/05/07 18:26:22 sjg Exp $ # # Tests for the special .MAKEOVERRIDES variable, which lists the names of the # variables that are passed on to child processes via the MAKEFLAGS @@ -13,7 +13,7 @@ all: stage_1: @echo '$@: overrides=<'${.MAKEOVERRIDES:Q}'>' - ${MAKE} -f ${MAKEFILE} stage_2 + ${MAKE} -f ${MAKEFILE} stage_2 .VAR=too stage_2: @echo '$@: overrides=<'${.MAKEOVERRIDES:Q}'>' diff --git a/contrib/bmake/var.c b/contrib/bmake/var.c index f39ce1baa83b..ec0a23e05a67 100644 --- a/contrib/bmake/var.c +++ b/contrib/bmake/var.c @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.1108 2024/04/28 15:10:19 rillig Exp $ */ +/* $NetBSD: var.c,v 1.1109 2024/05/07 18:26:22 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -143,7 +143,7 @@ #include "metachar.h" /* "@(#)var.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: var.c,v 1.1108 2024/04/28 15:10:19 rillig Exp $"); +MAKE_RCSID("$NetBSD: var.c,v 1.1109 2024/05/07 18:26:22 sjg Exp $"); /* * Variables are defined using one of the VAR=value assignments. Their @@ -1048,7 +1048,7 @@ Var_SetWithFlags(GNode *scope, const char *name, const char *val, * exported to the environment (as per POSIX standard), except * for internals. */ - if (!(flags & VAR_SET_NO_EXPORT) && name[0] != '.') { + if (!(flags & VAR_SET_NO_EXPORT)) { /* * If requested, don't export these in the @@ -1057,14 +1057,11 @@ Var_SetWithFlags(GNode *scope, const char *name, const char *val, * command-line settings continue to override * Makefile settings. */ - if (!opts.varNoExportEnv) + if (!opts.varNoExportEnv && name[0] != '.') setenv(name, val, 1); - /* XXX: What about .MAKE.EXPORTED? */ - /* - * XXX: Why not just mark the variable for - * needing export, as in ExportVarPlain? - */ - Global_Append(".MAKEOVERRIDES", name); + + if (!(flags & VAR_SET_INTERNAL)) + Global_Append(".MAKEOVERRIDES", name); } } diff --git a/usr.bin/bmake/Makefile.config b/usr.bin/bmake/Makefile.config index ee717d952846..55bc4a4370ca 100644 --- a/usr.bin/bmake/Makefile.config +++ b/usr.bin/bmake/Makefile.config @@ -6,7 +6,7 @@ SRCTOP?= ${.CURDIR:H:H} # things set by configure -_MAKE_VERSION?=20240430 +_MAKE_VERSION?=20240508 prefix?= /usr srcdir= ${SRCTOP}/contrib/bmakehome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6962c5c8.24cc5.508f951>
