mirror of
https://git.savannah.gnu.org/git/make.git
synced 2025-01-27 09:43:41 +00:00
[SV 62088] Avoid re-exec due to stdin.
The fix for SV 60595 causes make to re-execute when the makefile is read from stdin. E.g. $ printf 'all:; $(info hello)' | make -sf - Reported by Sergei Trofimovich <siarheit@google.com> Test added by Paul Smith <psmith@gnu.org> * src/main.c (main): Set the mtime of the stdin temporary file. * tests/scripts/features/reinvoke: Add a test.
This commit is contained in:
parent
1bc35a7ae7
commit
40a6751abf
2 changed files with 14 additions and 0 deletions
|
@ -1849,6 +1849,8 @@ main (int argc, char **argv, char **envp)
|
|||
make re-exec. */
|
||||
f->intermediate = 0;
|
||||
f->dontcare = 0;
|
||||
/* Avoid re-exec due to stdin. */
|
||||
f->last_mtime = f->mtime_before_update = f_mtime (f, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -163,5 +163,17 @@ include hello.d
|
|||
|
||||
unlink('hello.td');
|
||||
|
||||
# Test DV 62088 : make sure we don't re-invoke for stdin makefiles.
|
||||
# The test framework doesn't seem to have a good way to do this.
|
||||
|
||||
create_file('input.mk', "all:;\$(info all)\n");
|
||||
|
||||
close(STDIN);
|
||||
open(STDIN, "<", 'input.mk') || die "input.mk: $!\n";
|
||||
|
||||
run_make_test('', '-sf -', "all\n");
|
||||
|
||||
unlink('input.mk');
|
||||
|
||||
# This tells the test driver that the perl test script executed properly.
|
||||
1;
|
||||
|
|
Loading…
Reference in a new issue