The branch stable/14 has been updated by sjg:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=1d00ba4aaacfb001f17887529ebd6a7552a3f55a

commit 1d00ba4aaacfb001f17887529ebd6a7552a3f55a
Author:     Simon J. Gerraty <[email protected]>
AuthorDate: 2024-05-14 05:17:23 +0000
Commit:     Simon J. Gerraty <[email protected]>
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  <[email protected]>
+
+       * 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  <[email protected]>
 
        * 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  <[email protected]>
+
+       * 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  <[email protected]>
 
        * 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 <[email protected]>
 
 # 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 @@
 #      [email protected]
 #
 
-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/bmake

Reply via email to