Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make: fix error handling in jobs mode



details:   https://anonhg.NetBSD.org/src/rev/8bf7bc4744a4
branches:  trunk
changeset: 983981:8bf7bc4744a4
user:      rillig <rillig%NetBSD.org@localhost>
date:      Wed Jun 16 09:47:51 2021 +0000

description:
make: fix error handling in jobs mode

By using the same error handling code as in the branch for non-empty
commands, the behavior is the same again as before 2021-01-29.

diffstat:

 usr.bin/make/job.c                                    |  13 +++++++++++--
 usr.bin/make/unit-tests/jobs-empty-commands-error.exp |   5 +++--
 2 files changed, 14 insertions(+), 4 deletions(-)

diffs (45 lines):

diff -r 53b4dbd26652 -r 8bf7bc4744a4 usr.bin/make/job.c
--- a/usr.bin/make/job.c        Wed Jun 16 09:39:48 2021 +0000
+++ b/usr.bin/make/job.c        Wed Jun 16 09:47:51 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: job.c,v 1.434 2021/06/16 03:56:59 rillig Exp $ */
+/*     $NetBSD: job.c,v 1.435 2021/06/16 09:47:51 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.434 2021/06/16 03:56:59 rillig Exp $");
+MAKE_RCSID("$NetBSD: job.c,v 1.435 2021/06/16 09:47:51 rillig Exp $");
 
 /*
  * A shell defines how the commands are run.  All commands for a target are
@@ -1663,6 +1663,15 @@
        if (Lst_IsEmpty(&gn->commands)) {
                job->cmdFILE = stdout;
                run = false;
+
+               /*
+                * We're serious here, but if the commands were bogus, we're
+                * also dead...
+                */
+               if (!cmdsOK) {
+                       PrintOnError(gn, NULL); /* provide some clue */
+                       DieHorribly();
+               }
        } else if (((gn->type & OP_MAKE) && !opts.noRecursiveExecute) ||
            (!opts.noExecute && !opts.touchFlag)) {
                /*
diff -r 53b4dbd26652 -r 8bf7bc4744a4 usr.bin/make/unit-tests/jobs-empty-commands-error.exp
--- a/usr.bin/make/unit-tests/jobs-empty-commands-error.exp     Wed Jun 16 09:39:48 2021 +0000
+++ b/usr.bin/make/unit-tests/jobs-empty-commands-error.exp     Wed Jun 16 09:47:51 2021 +0000
@@ -1,4 +1,5 @@
 : 'Making existing-target out of nothing.'
 make: don't know how to make nonexistent-target (continuing)
-`nonexistent-target' was not built (being made, type OP_DEPS_FOUND|OP_MARK, flags REMAKE|DONE_WAIT|DONE_ALLSRC|DONECYCLE)!
-exit status 1
+
+make: stopped in unit-tests
+exit status 2



Home | Main Index | Thread Index | Old Index