Fixed Savannah bug #15641.

This commit is contained in:
Boris Kolpackov 2006-02-08 17:29:07 +00:00
parent ce9c63b32b
commit d0c4e92f11
5 changed files with 36 additions and 2 deletions

View file

@ -1,3 +1,10 @@
2006-02-08 Boris Kolpackov <boris@kolpackov.net>
* job.h (struct child): Add dontcare bitfield.
* job.c (new_job): Cache dontcare flag.
* job.c (reap_children): Use cached dontcare flag instead of the
one in struct file. Fixes Savannah bug #15641.
2006-02-06 Paul D. Smith <psmith@gnu.org>
* vpath.c (selective_vpath_search): If the file we find has a

8
job.c
View file

@ -383,7 +383,7 @@ child_error (char *target_name, int exit_code, int exit_sig, int coredump,
{
if (ignored && silent_flag)
return;
#ifdef VMS
if (!(exit_code & 1))
error (NILF,
@ -718,7 +718,7 @@ reap_children (int block, int err)
if (c->good_stdin)
good_stdin_used = 0;
dontcare = c->file->dontcare;
dontcare = c->dontcare;
if (child_failed && !c->noerror && !ignore_errors_flag)
{
@ -1612,6 +1612,10 @@ new_job (struct file *file)
c->command_lines = lines;
c->sh_batch_file = NULL;
/* Cache dontcare flag because file->dontcare can be changed once we
return. Check dontcare inheritance mechanism for details. */
c->dontcare = file->dontcare;
/* Fetch the first command line to be run. */
job_next_command (c);

1
job.h
View file

@ -63,6 +63,7 @@ struct child
unsigned int good_stdin:1; /* Nonzero if this child has a good stdin. */
unsigned int deleted:1; /* Nonzero if targets have been deleted. */
unsigned int dontcare:1; /* Saved dontcare flag. */
};
extern struct child *children;

View file

@ -1,3 +1,7 @@
2006-02-08 Boris Kolpackov <boris@kolpackov.net>
* scripts/features/parallelism: Add a test for bug #15641.
2006-02-06 Paul D. Smith <psmith@gnu.org>
* scripts/options/dash-W: Add a test for bug #15341.

View file

@ -108,4 +108,22 @@ Ok done',
512);
# Test for Savannah bug #15641.
#
run_make_test('
.PHONY: all
all:; @:
-include foo.d
foo.d: comp
@echo building $@
comp: mod_a.o mod_b.o; @:
mod_a.o mod_b.o:
@exit 1
', '-j2', '');
1;