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

Reply via email to