mirror of
https://git.savannah.gnu.org/git/make.git
synced 2025-02-05 22:17:05 +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. */
|
make re-exec. */
|
||||||
f->intermediate = 0;
|
f->intermediate = 0;
|
||||||
f->dontcare = 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');
|
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.
|
# This tells the test driver that the perl test script executed properly.
|
||||||
1;
|
1;
|
||||||
|
|
Loading…
Reference in a new issue