diff options
author | Simon J. Gerraty <sjg@FreeBSD.org> | 2024-05-14 04:13:22 +0000 |
---|---|---|
committer | Simon J. Gerraty <sjg@FreeBSD.org> | 2024-05-14 04:13:22 +0000 |
commit | 3c2ab5fddc576e58f3ffa70dc5fa95144646a513 (patch) | |
tree | 3a605a59e4678bcb81a15a89f6feee55bc34b2e4 | |
parent | 507951f55039f9d1ceae507d510f8cb68225fbc5 (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-- | ChangeLog | 8 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | job.c | 7 | ||||
-rw-r--r-- | main.c | 6 | ||||
-rw-r--r-- | make.h | 5 | ||||
-rw-r--r-- | mk/ChangeLog | 7 | ||||
-rw-r--r-- | mk/dirdeps.mk | 7 | ||||
-rw-r--r--[-rwxr-xr-x] | mk/install-mk | 4 | ||||
-rw-r--r-- | unit-tests/opt-debug-graph1.exp | 2 | ||||
-rw-r--r-- | unit-tests/opt-debug-graph2.exp | 2 | ||||
-rw-r--r-- | unit-tests/opt-debug-graph3.exp | 2 | ||||
-rw-r--r-- | unit-tests/suff-main-several.exp | 2 | ||||
-rw-r--r-- | unit-tests/suff-transform-debug.exp | 2 | ||||
-rw-r--r-- | unit-tests/varname-dot-makeoverrides.exp | 6 | ||||
-rw-r--r-- | unit-tests/varname-dot-makeoverrides.mk | 4 | ||||
-rw-r--r-- | var.c | 17 |
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 @@ -1,2 +1,2 @@ # keep this compatible with sh and make -_MAKE_VERSION=20240430 +_MAKE_VERSION=20240508 @@ -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) @@ -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. */ { @@ -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}'>' @@ -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); } } |