Module Name: src Committed By: rillig Date: Mon Jul 22 18:11:15 UTC 2024
Modified Files: src/usr.bin/make: job.c src/usr.bin/make/unit-tests: cmd-errors-jobs.exp cmd-errors-jobs.mk Log Message: make: fix exit status for error in .BEGIN/.END prerequisite To generate a diff of this commit: cvs rdiff -u -r1.481 -r1.482 src/usr.bin/make/job.c cvs rdiff -u -r1.12 -r1.13 src/usr.bin/make/unit-tests/cmd-errors-jobs.exp cvs rdiff -u -r1.11 -r1.12 src/usr.bin/make/unit-tests/cmd-errors-jobs.mk 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.481 src/usr.bin/make/job.c:1.482 --- src/usr.bin/make/job.c:1.481 Sat Jul 20 14:09:27 2024 +++ src/usr.bin/make/job.c Mon Jul 22 18:11:15 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: job.c,v 1.481 2024/07/20 14:09:27 rillig Exp $ */ +/* $NetBSD: job.c,v 1.482 2024/07/22 18:11:15 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -141,7 +141,7 @@ #include "trace.h" /* "@(#)job.c 8.2 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: job.c,v 1.481 2024/07/20 14:09:27 rillig Exp $"); +MAKE_RCSID("$NetBSD: job.c,v 1.482 2024/07/22 18:11:15 rillig Exp $"); /* * A shell defines how the commands are run. All commands for a target are @@ -1962,8 +1962,7 @@ JobRun(GNode *targ) } #else Compat_Make(targ, targ); - /* XXX: Replace with GNode_IsError(gn) */ - if (targ->made == ERROR) { + if (GNode_IsError(targ)) { PrintOnError(targ, "\n\nStop.\n"); exit(1); } Index: src/usr.bin/make/unit-tests/cmd-errors-jobs.exp diff -u src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.12 src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.13 --- src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.12 Mon Jul 22 18:02:51 2024 +++ src/usr.bin/make/unit-tests/cmd-errors-jobs.exp Mon Jul 22 18:11:15 2024 @@ -30,7 +30,11 @@ end begin-direct with status 1 begin begin-indirect (exit 13) # before-begin *** Error code 13 (continuing) -end begin-indirect with status 0 + + +Stop. +make: stopped making "begin-indirect" in unit-tests +end begin-indirect with status 1 begin end-direct (exit 13) # .END @@ -44,6 +48,10 @@ end end-direct with status 1 begin end-indirect (exit 13) # before-end *** Error code 13 (continuing) -end end-indirect with status 0 + + +Stop. +make: stopped making "end-indirect" in unit-tests +end end-indirect with status 1 exit status 0 Index: src/usr.bin/make/unit-tests/cmd-errors-jobs.mk diff -u src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.11 src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.12 --- src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.11 Mon Jul 22 18:02:51 2024 +++ src/usr.bin/make/unit-tests/cmd-errors-jobs.mk Mon Jul 22 18:11:15 2024 @@ -1,4 +1,4 @@ -# $NetBSD: cmd-errors-jobs.mk,v 1.11 2024/07/22 18:02:51 rillig Exp $ +# $NetBSD: cmd-errors-jobs.mk,v 1.12 2024/07/22 18:11:15 rillig Exp $ # # Demonstrate how errors in expressions affect whether the commands # are actually executed in jobs mode. @@ -76,11 +76,9 @@ before-begin: (exit 13) # $@ .endif # expect: begin begin-indirect -# TODO: Show the "stopped making" message. -# expect-not: stopped making "begin-indirect" # expect: *** Error code 13 (continuing) -# TODO: Exit with a non-zero status due to the failed target. -# expect: end begin-indirect with status 0 +# expect: make: stopped making "begin-indirect" in unit-tests +# expect: end begin-indirect with status 1 .if make(end-direct) @@ -102,8 +100,6 @@ before-end: (exit 13) # $@ .endif # expect: begin end-indirect -# TODO: Show the "stopped making" message. -# expect-not: stopped making "end-indirect" # expect: *** Error code 13 (continuing) -# TODO: Exit with a non-zero status due to the failed target. -# expect: end end-indirect with status 0 +# expect: make: stopped making "end-indirect" in unit-tests +# expect: end end-indirect with status 1