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