Module Name: src
Committed By: rillig
Date: Sat Feb 12 11:14:48 UTC 2022
Modified Files:
src/usr.bin/make: job.c
src/usr.bin/make/unit-tests: deptgt-silent-jobs.exp
deptgt-silent-jobs.mk sh-flags.exp
Log Message:
make: fix echoing of command with '-' in silent target in jobs mode
Since job.c 1.83 from 2003-12-20, the command had been echoed even if
the target had the attribute '.SILENT'.
In sh-flags.exp, each removed 'echo' command is below a target name
matching the pattern 'opt-?j????-tgt-??s-cmd-?i?', which means that the
target was marked as silent, either through a global '.SILENT'
declaration or the command line option '-s' or the attribute '.SILENT'
on the target.
Reported by Alan Barrett in PR#45356.
To generate a diff of this commit:
cvs rdiff -u -r1.451 -r1.452 src/usr.bin/make/job.c
cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/deptgt-silent-jobs.exp \
src/usr.bin/make/unit-tests/deptgt-silent-jobs.mk
cvs rdiff -u -r1.3 -r1.4 src/usr.bin/make/unit-tests/sh-flags.exp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/job.c
diff -u src/usr.bin/make/job.c:1.451 src/usr.bin/make/job.c:1.452
--- src/usr.bin/make/job.c:1.451 Fri Feb 4 23:22:19 2022
+++ src/usr.bin/make/job.c Sat Feb 12 11:14:48 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: job.c,v 1.451 2022/02/04 23:22:19 rillig Exp $ */
+/* $NetBSD: job.c,v 1.452 2022/02/12 11:14:48 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -142,7 +142,7 @@
#include "trace.h"
/* "@(#)job.c 8.2 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: job.c,v 1.451 2022/02/04 23:22:19 rillig Exp $");
+MAKE_RCSID("$NetBSD: job.c,v 1.452 2022/02/12 11:14:48 rillig Exp $");
/*
* A shell defines how the commands are run. All commands for a target are
@@ -835,7 +835,7 @@ static void
JobWriteSpecialsEchoCtl(Job *job, ShellWriter *wr, CommandFlags *inout_cmdFlags,
const char *escCmd, const char **inout_cmdTemplate)
{
- /* XXX: Why is the job modified at this point? */
+ /* XXX: Why is the whole job modified at this point? */
job->ignerr = true;
if (job->echo && inout_cmdFlags->echo) {
@@ -847,9 +847,6 @@ JobWriteSpecialsEchoCtl(Job *job, ShellW
* for toggling the error checking.
*/
inout_cmdFlags->echo = false;
- } else {
- if (inout_cmdFlags->echo)
- ShellWriter_EchoCmd(wr, escCmd);
}
*inout_cmdTemplate = shell->runIgnTmpl;
Index: src/usr.bin/make/unit-tests/deptgt-silent-jobs.exp
diff -u src/usr.bin/make/unit-tests/deptgt-silent-jobs.exp:1.1 src/usr.bin/make/unit-tests/deptgt-silent-jobs.exp:1.2
--- src/usr.bin/make/unit-tests/deptgt-silent-jobs.exp:1.1 Sat Feb 12 01:15:18 2022
+++ src/usr.bin/make/unit-tests/deptgt-silent-jobs.exp Sat Feb 12 11:14:48 2022
@@ -2,7 +2,6 @@ compat: testing 1
compat: testing 2
compat: testing 3
jobs: testing 1
-echo 'jobs: testing 2'
jobs: testing 2
jobs: testing 3
exit status 0
Index: src/usr.bin/make/unit-tests/deptgt-silent-jobs.mk
diff -u src/usr.bin/make/unit-tests/deptgt-silent-jobs.mk:1.1 src/usr.bin/make/unit-tests/deptgt-silent-jobs.mk:1.2
--- src/usr.bin/make/unit-tests/deptgt-silent-jobs.mk:1.1 Sat Feb 12 01:15:18 2022
+++ src/usr.bin/make/unit-tests/deptgt-silent-jobs.mk Sat Feb 12 11:14:48 2022
@@ -1,4 +1,4 @@
-# $NetBSD: deptgt-silent-jobs.mk,v 1.1 2022/02/12 01:15:18 rillig Exp $
+# $NetBSD: deptgt-silent-jobs.mk,v 1.2 2022/02/12 11:14:48 rillig Exp $
#
# Ensure that the special dependency target '.SILENT' only affects the amount
# of output, but not the kind of error handling.
@@ -7,7 +7,7 @@
# In job.c 1.83 from 2003.12.20.00.18.22, in an attempt to fix
# https://gnats.netbsd.org/18573, commands that suppressed error
# handling were output in jobs mode, even when the global '.SILENT'
-# was set.
+# was set. This was fixed in job.c 1.452 from 2022-02-12.
#
# See also:
# https://gnats.netbsd.org/45356
@@ -28,7 +28,6 @@ compat:
@${MAKE} -r -f ${MAKEFILE} test VARIANT=compat
# expect: jobs: testing 1
-# FIXME: suppress 'echo 'jobs: testing 2''
# expect: echo 'jobs: testing 2'
# expect: jobs: testing 2
# expect: jobs: testing 3
Index: src/usr.bin/make/unit-tests/sh-flags.exp
diff -u src/usr.bin/make/unit-tests/sh-flags.exp:1.3 src/usr.bin/make/unit-tests/sh-flags.exp:1.4
--- src/usr.bin/make/unit-tests/sh-flags.exp:1.3 Sat Dec 12 12:19:18 2020
+++ src/usr.bin/make/unit-tests/sh-flags.exp Sat Feb 12 11:14:48 2022
@@ -1102,7 +1102,6 @@ opt-_j____-tgt-__s-cmd-__s
running
opt-_j____-tgt-__s-cmd-_i_
-echo running; false
running
*** [opt-_j____-tgt-__s-cmd-_i_] Error code 1 (ignored)
@@ -1117,7 +1116,6 @@ opt-_j____-tgt-__s-cmd-a_s
running
opt-_j____-tgt-__s-cmd-ai_
-echo running; false
running
*** [opt-_j____-tgt-__s-cmd-ai_] Error code 1 (ignored)
@@ -1170,7 +1168,6 @@ running
*** [opt-_j____-tgt-_is-cmd-__s] Error code 1 (ignored)
opt-_j____-tgt-_is-cmd-_i_
-echo running; false
running
*** [opt-_j____-tgt-_is-cmd-_i_] Error code 1 (ignored)
@@ -1187,7 +1184,6 @@ running
*** [opt-_j____-tgt-_is-cmd-a_s] Error code 1 (ignored)
opt-_j____-tgt-_is-cmd-ai_
-echo running; false
running
*** [opt-_j____-tgt-_is-cmd-ai_] Error code 1 (ignored)
@@ -1234,7 +1230,6 @@ opt-_j____-tgt-a_s-cmd-__s
running
opt-_j____-tgt-a_s-cmd-_i_
-echo running; false
running
*** [opt-_j____-tgt-a_s-cmd-_i_] Error code 1 (ignored)
@@ -1249,7 +1244,6 @@ opt-_j____-tgt-a_s-cmd-a_s
running
opt-_j____-tgt-a_s-cmd-ai_
-echo running; false
running
*** [opt-_j____-tgt-a_s-cmd-ai_] Error code 1 (ignored)
@@ -1302,7 +1296,6 @@ running
*** [opt-_j____-tgt-ais-cmd-__s] Error code 1 (ignored)
opt-_j____-tgt-ais-cmd-_i_
-echo running; false
running
*** [opt-_j____-tgt-ais-cmd-_i_] Error code 1 (ignored)
@@ -1319,7 +1312,6 @@ running
*** [opt-_j____-tgt-ais-cmd-a_s] Error code 1 (ignored)
opt-_j____-tgt-ais-cmd-ai_
-echo running; false
running
*** [opt-_j____-tgt-ais-cmd-ai_] Error code 1 (ignored)
@@ -1496,7 +1488,6 @@ opt-_j_n__-tgt-a_s-cmd-__s
running
opt-_j_n__-tgt-a_s-cmd-_i_
-echo running; false
running
opt-_j_n__-tgt-a_s-cmd-_is
@@ -1509,7 +1500,6 @@ opt-_j_n__-tgt-a_s-cmd-a_s
running
opt-_j_n__-tgt-a_s-cmd-ai_
-echo running; false
running
opt-_j_n__-tgt-a_s-cmd-ais
@@ -1550,7 +1540,6 @@ opt-_j_n__-tgt-ais-cmd-__s
running
opt-_j_n__-tgt-ais-cmd-_i_
-echo running; false
running
opt-_j_n__-tgt-ais-cmd-_is
@@ -1563,7 +1552,6 @@ opt-_j_n__-tgt-ais-cmd-a_s
running
opt-_j_n__-tgt-ais-cmd-ai_
-echo running; false
running
opt-_j_n__-tgt-ais-cmd-ais
@@ -1612,12 +1600,10 @@ opt-_jl___-tgt-__s-cmd-__s
running
opt-_jl___-tgt-__s-cmd-_i_
-echo running; false
running
*** [opt-_jl___-tgt-__s-cmd-_i_] Error code 1 (ignored)
opt-_jl___-tgt-__s-cmd-_is
-echo running; false
running
*** [opt-_jl___-tgt-__s-cmd-_is] Error code 1 (ignored)
@@ -1628,12 +1614,10 @@ opt-_jl___-tgt-__s-cmd-a_s
running
opt-_jl___-tgt-__s-cmd-ai_
-echo running; false
running
*** [opt-_jl___-tgt-__s-cmd-ai_] Error code 1 (ignored)
opt-_jl___-tgt-__s-cmd-ais
-echo running; false
running
*** [opt-_jl___-tgt-__s-cmd-ais] Error code 1 (ignored)
@@ -1686,12 +1670,10 @@ running
*** [opt-_jl___-tgt-_is-cmd-__s] Error code 1 (ignored)
opt-_jl___-tgt-_is-cmd-_i_
-echo running; false
running
*** [opt-_jl___-tgt-_is-cmd-_i_] Error code 1 (ignored)
opt-_jl___-tgt-_is-cmd-_is
-echo running; false
running
*** [opt-_jl___-tgt-_is-cmd-_is] Error code 1 (ignored)
@@ -1704,12 +1686,10 @@ running
*** [opt-_jl___-tgt-_is-cmd-a_s] Error code 1 (ignored)
opt-_jl___-tgt-_is-cmd-ai_
-echo running; false
running
*** [opt-_jl___-tgt-_is-cmd-ai_] Error code 1 (ignored)
opt-_jl___-tgt-_is-cmd-ais
-echo running; false
running
*** [opt-_jl___-tgt-_is-cmd-ais] Error code 1 (ignored)
@@ -1756,12 +1736,10 @@ opt-_jl___-tgt-a_s-cmd-__s
running
opt-_jl___-tgt-a_s-cmd-_i_
-echo running; false
running
*** [opt-_jl___-tgt-a_s-cmd-_i_] Error code 1 (ignored)
opt-_jl___-tgt-a_s-cmd-_is
-echo running; false
running
*** [opt-_jl___-tgt-a_s-cmd-_is] Error code 1 (ignored)
@@ -1772,12 +1750,10 @@ opt-_jl___-tgt-a_s-cmd-a_s
running
opt-_jl___-tgt-a_s-cmd-ai_
-echo running; false
running
*** [opt-_jl___-tgt-a_s-cmd-ai_] Error code 1 (ignored)
opt-_jl___-tgt-a_s-cmd-ais
-echo running; false
running
*** [opt-_jl___-tgt-a_s-cmd-ais] Error code 1 (ignored)
@@ -1830,12 +1806,10 @@ running
*** [opt-_jl___-tgt-ais-cmd-__s] Error code 1 (ignored)
opt-_jl___-tgt-ais-cmd-_i_
-echo running; false
running
*** [opt-_jl___-tgt-ais-cmd-_i_] Error code 1 (ignored)
opt-_jl___-tgt-ais-cmd-_is
-echo running; false
running
*** [opt-_jl___-tgt-ais-cmd-_is] Error code 1 (ignored)
@@ -1848,12 +1822,10 @@ running
*** [opt-_jl___-tgt-ais-cmd-a_s] Error code 1 (ignored)
opt-_jl___-tgt-ais-cmd-ai_
-echo running; false
running
*** [opt-_jl___-tgt-ais-cmd-ai_] Error code 1 (ignored)
opt-_jl___-tgt-ais-cmd-ais
-echo running; false
running
*** [opt-_jl___-tgt-ais-cmd-ais] Error code 1 (ignored)
@@ -2032,11 +2004,9 @@ opt-_jln__-tgt-a_s-cmd-__s
running
opt-_jln__-tgt-a_s-cmd-_i_
-echo running; false
running
opt-_jln__-tgt-a_s-cmd-_is
-echo running; false
running
opt-_jln__-tgt-a_s-cmd-a__
@@ -2046,11 +2016,9 @@ opt-_jln__-tgt-a_s-cmd-a_s
running
opt-_jln__-tgt-a_s-cmd-ai_
-echo running; false
running
opt-_jln__-tgt-a_s-cmd-ais
-echo running; false
running
opt-_jln__-tgt-ai_-cmd-___
@@ -2092,11 +2060,9 @@ opt-_jln__-tgt-ais-cmd-__s
running
opt-_jln__-tgt-ais-cmd-_i_
-echo running; false
running
opt-_jln__-tgt-ais-cmd-_is
-echo running; false
running
opt-_jln__-tgt-ais-cmd-a__
@@ -2106,11 +2072,9 @@ opt-_jln__-tgt-ais-cmd-a_s
running
opt-_jln__-tgt-ais-cmd-ai_
-echo running; false
running
opt-_jln__-tgt-ais-cmd-ais
-echo running; false
running
opt-i_____-tgt-___-cmd-___
@@ -3278,7 +3242,6 @@ running
*** [opt-ij____-tgt-__s-cmd-__s] Error code 1 (ignored)
opt-ij____-tgt-__s-cmd-_i_
-echo running; false
running
*** [opt-ij____-tgt-__s-cmd-_i_] Error code 1 (ignored)
@@ -3295,7 +3258,6 @@ running
*** [opt-ij____-tgt-__s-cmd-a_s] Error code 1 (ignored)
opt-ij____-tgt-__s-cmd-ai_
-echo running; false
running
*** [opt-ij____-tgt-__s-cmd-ai_] Error code 1 (ignored)
@@ -3348,7 +3310,6 @@ running
*** [opt-ij____-tgt-_is-cmd-__s] Error code 1 (ignored)
opt-ij____-tgt-_is-cmd-_i_
-echo running; false
running
*** [opt-ij____-tgt-_is-cmd-_i_] Error code 1 (ignored)
@@ -3365,7 +3326,6 @@ running
*** [opt-ij____-tgt-_is-cmd-a_s] Error code 1 (ignored)
opt-ij____-tgt-_is-cmd-ai_
-echo running; false
running
*** [opt-ij____-tgt-_is-cmd-ai_] Error code 1 (ignored)
@@ -3418,7 +3378,6 @@ running
*** [opt-ij____-tgt-a_s-cmd-__s] Error code 1 (ignored)
opt-ij____-tgt-a_s-cmd-_i_
-echo running; false
running
*** [opt-ij____-tgt-a_s-cmd-_i_] Error code 1 (ignored)
@@ -3435,7 +3394,6 @@ running
*** [opt-ij____-tgt-a_s-cmd-a_s] Error code 1 (ignored)
opt-ij____-tgt-a_s-cmd-ai_
-echo running; false
running
*** [opt-ij____-tgt-a_s-cmd-ai_] Error code 1 (ignored)
@@ -3488,7 +3446,6 @@ running
*** [opt-ij____-tgt-ais-cmd-__s] Error code 1 (ignored)
opt-ij____-tgt-ais-cmd-_i_
-echo running; false
running
*** [opt-ij____-tgt-ais-cmd-_i_] Error code 1 (ignored)
@@ -3505,7 +3462,6 @@ running
*** [opt-ij____-tgt-ais-cmd-a_s] Error code 1 (ignored)
opt-ij____-tgt-ais-cmd-ai_
-echo running; false
running
*** [opt-ij____-tgt-ais-cmd-ai_] Error code 1 (ignored)
@@ -3686,7 +3642,6 @@ opt-ij_n__-tgt-a_s-cmd-__s
running
opt-ij_n__-tgt-a_s-cmd-_i_
-echo running; false
running
opt-ij_n__-tgt-a_s-cmd-_is
@@ -3699,7 +3654,6 @@ opt-ij_n__-tgt-a_s-cmd-a_s
running
opt-ij_n__-tgt-a_s-cmd-ai_
-echo running; false
running
opt-ij_n__-tgt-a_s-cmd-ais
@@ -3740,7 +3694,6 @@ opt-ij_n__-tgt-ais-cmd-__s
running
opt-ij_n__-tgt-ais-cmd-_i_
-echo running; false
running
opt-ij_n__-tgt-ais-cmd-_is
@@ -3753,7 +3706,6 @@ opt-ij_n__-tgt-ais-cmd-a_s
running
opt-ij_n__-tgt-ais-cmd-ai_
-echo running; false
running
opt-ij_n__-tgt-ais-cmd-ais
@@ -3808,12 +3760,10 @@ running
*** [opt-ijl___-tgt-__s-cmd-__s] Error code 1 (ignored)
opt-ijl___-tgt-__s-cmd-_i_
-echo running; false
running
*** [opt-ijl___-tgt-__s-cmd-_i_] Error code 1 (ignored)
opt-ijl___-tgt-__s-cmd-_is
-echo running; false
running
*** [opt-ijl___-tgt-__s-cmd-_is] Error code 1 (ignored)
@@ -3826,12 +3776,10 @@ running
*** [opt-ijl___-tgt-__s-cmd-a_s] Error code 1 (ignored)
opt-ijl___-tgt-__s-cmd-ai_
-echo running; false
running
*** [opt-ijl___-tgt-__s-cmd-ai_] Error code 1 (ignored)
opt-ijl___-tgt-__s-cmd-ais
-echo running; false
running
*** [opt-ijl___-tgt-__s-cmd-ais] Error code 1 (ignored)
@@ -3884,12 +3832,10 @@ running
*** [opt-ijl___-tgt-_is-cmd-__s] Error code 1 (ignored)
opt-ijl___-tgt-_is-cmd-_i_
-echo running; false
running
*** [opt-ijl___-tgt-_is-cmd-_i_] Error code 1 (ignored)
opt-ijl___-tgt-_is-cmd-_is
-echo running; false
running
*** [opt-ijl___-tgt-_is-cmd-_is] Error code 1 (ignored)
@@ -3902,12 +3848,10 @@ running
*** [opt-ijl___-tgt-_is-cmd-a_s] Error code 1 (ignored)
opt-ijl___-tgt-_is-cmd-ai_
-echo running; false
running
*** [opt-ijl___-tgt-_is-cmd-ai_] Error code 1 (ignored)
opt-ijl___-tgt-_is-cmd-ais
-echo running; false
running
*** [opt-ijl___-tgt-_is-cmd-ais] Error code 1 (ignored)
@@ -3960,12 +3904,10 @@ running
*** [opt-ijl___-tgt-a_s-cmd-__s] Error code 1 (ignored)
opt-ijl___-tgt-a_s-cmd-_i_
-echo running; false
running
*** [opt-ijl___-tgt-a_s-cmd-_i_] Error code 1 (ignored)
opt-ijl___-tgt-a_s-cmd-_is
-echo running; false
running
*** [opt-ijl___-tgt-a_s-cmd-_is] Error code 1 (ignored)
@@ -3978,12 +3920,10 @@ running
*** [opt-ijl___-tgt-a_s-cmd-a_s] Error code 1 (ignored)
opt-ijl___-tgt-a_s-cmd-ai_
-echo running; false
running
*** [opt-ijl___-tgt-a_s-cmd-ai_] Error code 1 (ignored)
opt-ijl___-tgt-a_s-cmd-ais
-echo running; false
running
*** [opt-ijl___-tgt-a_s-cmd-ais] Error code 1 (ignored)
@@ -4036,12 +3976,10 @@ running
*** [opt-ijl___-tgt-ais-cmd-__s] Error code 1 (ignored)
opt-ijl___-tgt-ais-cmd-_i_
-echo running; false
running
*** [opt-ijl___-tgt-ais-cmd-_i_] Error code 1 (ignored)
opt-ijl___-tgt-ais-cmd-_is
-echo running; false
running
*** [opt-ijl___-tgt-ais-cmd-_is] Error code 1 (ignored)
@@ -4054,12 +3992,10 @@ running
*** [opt-ijl___-tgt-ais-cmd-a_s] Error code 1 (ignored)
opt-ijl___-tgt-ais-cmd-ai_
-echo running; false
running
*** [opt-ijl___-tgt-ais-cmd-ai_] Error code 1 (ignored)
opt-ijl___-tgt-ais-cmd-ais
-echo running; false
running
*** [opt-ijl___-tgt-ais-cmd-ais] Error code 1 (ignored)
@@ -4242,11 +4178,9 @@ opt-ijln__-tgt-a_s-cmd-__s
running
opt-ijln__-tgt-a_s-cmd-_i_
-echo running; false
running
opt-ijln__-tgt-a_s-cmd-_is
-echo running; false
running
opt-ijln__-tgt-a_s-cmd-a__
@@ -4256,11 +4190,9 @@ opt-ijln__-tgt-a_s-cmd-a_s
running
opt-ijln__-tgt-a_s-cmd-ai_
-echo running; false
running
opt-ijln__-tgt-a_s-cmd-ais
-echo running; false
running
opt-ijln__-tgt-ai_-cmd-___
@@ -4302,11 +4234,9 @@ opt-ijln__-tgt-ais-cmd-__s
running
opt-ijln__-tgt-ais-cmd-_i_
-echo running; false
running
opt-ijln__-tgt-ais-cmd-_is
-echo running; false
running
opt-ijln__-tgt-ais-cmd-a__
@@ -4316,10 +4246,8 @@ opt-ijln__-tgt-ais-cmd-a_s
running
opt-ijln__-tgt-ais-cmd-ai_
-echo running; false
running
opt-ijln__-tgt-ais-cmd-ais
-echo running; false
running
exit status 0