mirror of
https://github.com/mirror/make.git
synced 2026-09-06 06:35:00 +08: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:
committed by
Paul Smith
parent
1bc35a7ae7
commit
40a6751abf
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user