aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon J. Gerraty <sjg@FreeBSD.org>2024-05-14 04:13:22 +0000
committerSimon J. Gerraty <sjg@FreeBSD.org>2024-05-14 04:13:22 +0000
commit3c2ab5fddc576e58f3ffa70dc5fa95144646a513 (patch)
tree3a605a59e4678bcb81a15a89f6feee55bc34b2e4
parent507951f55039f9d1ceae507d510f8cb68225fbc5 (diff)
Import bmake-20240508vendor/NetBSD/bmake/20240508
Intersting/relevant changes since bmake-20240430 ChangeLog since bmake-20240430 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. mk/ChangeLog since bmake-20240430 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.
-rw-r--r--ChangeLog8
-rw-r--r--VERSION2
-rw-r--r--job.c7
-rw-r--r--main.c6
-rw-r--r--make.h5
-rw-r--r--mk/ChangeLog7
-rw-r--r--mk/dirdeps.mk7
-rw-r--r--[-rwxr-xr-x]mk/install-mk4
-rw-r--r--unit-tests/opt-debug-graph1.exp2
-rw-r--r--unit-tests/opt-debug-graph2.exp2
-rw-r--r--unit-tests/opt-debug-graph3.exp2
-rw-r--r--unit-tests/suff-main-several.exp2
-rw-r--r--unit-tests/suff-transform-debug.exp2
-rw-r--r--unit-tests/varname-dot-makeoverrides.exp6
-rw-r--r--unit-tests/varname-dot-makeoverrides.mk4
-rw-r--r--var.c17
16 files changed, 50 insertions, 33 deletions
diff --git a/ChangeLog b/ChangeLog
index a2dd8dd5ed14..1ce033887c8f 100644
--- a/ChangeLog
+++ b/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/VERSION b/VERSION
index 49a67b80073a..60aa9ae5069b 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
# keep this compatible with sh and make
-_MAKE_VERSION=20240430
+_MAKE_VERSION=20240508
diff --git a/job.c b/job.c
index e653dcb7ecd5..7fafec0e4c8c 100644
--- a/job.c
+++ b/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
@@ -2173,7 +2173,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/main.c b/main.c
index ea834bf669ed..fff294291ccf 100644
--- a/main.c
+++ b/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/make.h b/make.h
index ff85ae4f41db..b7fcc77b91b3 100644
--- a/make.h
+++ b/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/mk/ChangeLog b/mk/ChangeLog
index ee65ea0fadc1..4c3f4f4572c9 100644
--- a/mk/ChangeLog
+++ b/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/mk/dirdeps.mk b/mk/dirdeps.mk
index b3b34145e8e9..7a9ecd881d7b 100644
--- a/mk/dirdeps.mk
+++ b/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/mk/install-mk b/mk/install-mk
index 97874ac49016..c2962ffee6dc 100755..100644
--- a/mk/install-mk
+++ b/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/unit-tests/opt-debug-graph1.exp b/unit-tests/opt-debug-graph1.exp
index 26777a671119..d01a98a31fdb 100644
--- a/unit-tests/opt-debug-graph1.exp
+++ b/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/unit-tests/opt-debug-graph2.exp b/unit-tests/opt-debug-graph2.exp
index a5a51413fd38..d4182650baed 100644
--- a/unit-tests/opt-debug-graph2.exp
+++ b/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/unit-tests/opt-debug-graph3.exp b/unit-tests/opt-debug-graph3.exp
index ff88400668fa..fea3c658cb72 100644
--- a/unit-tests/opt-debug-graph3.exp
+++ b/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/unit-tests/suff-main-several.exp b/unit-tests/suff-main-several.exp
index 4391610be742..d19a392f5962 100644
--- a/unit-tests/suff-main-several.exp
+++ b/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/unit-tests/suff-transform-debug.exp b/unit-tests/suff-transform-debug.exp
index 5d632a22f80a..2e88db58bc8c 100644
--- a/unit-tests/suff-transform-debug.exp
+++ b/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/unit-tests/varname-dot-makeoverrides.exp b/unit-tests/varname-dot-makeoverrides.exp
index 78c0296f8d76..21942ffdc96d 100644
--- a/unit-tests/varname-dot-makeoverrides.exp
+++ b/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/unit-tests/varname-dot-makeoverrides.mk b/unit-tests/varname-dot-makeoverrides.mk
index f3f3897f8aa4..966fcb7e0ec9 100644
--- a/unit-tests/varname-dot-makeoverrides.mk
+++ b/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/var.c b/var.c
index f39ce1baa83b..ec0a23e05a67 100644
--- a/var.c
+++ b/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);
}
}