* job.c (exec_command): [SV 47365] Show error on exec failure.

This commit is contained in:
Paul Smith 2016-03-09 00:18:57 -05:00
parent 85c788572d
commit 14b2d7effb
2 changed files with 15 additions and 1 deletions

8
job.c
View File

@ -2322,7 +2322,13 @@ exec_command (char **argv, char **envp)
switch (errno)
{
case ENOENT:
OS (error, NILF, _("%s: Command not found"), argv[0]);
/* We are in the child: don't use the output buffer.
It's not right to run fprintf() here! */
if (makelevel == 0)
fprintf (stderr, _("%s: %s: Command not found\n"), program, argv[0]);
else
fprintf (stderr, _("%s[%u]: %s: Command not found\n"),
program, makelevel, argv[0]);
break;
case ENOEXEC:
{

View File

@ -337,5 +337,13 @@ foo: $(OBJS) ; echo $(or $(filter %.o,$^),$(error fail))
!,
'-O', "#MAKEFILE#:2: *** fail. Stop.\n", 512);
# SV 47365: Make sure exec failure error messages are shown
# Is "127" not always the same everywhere? We may have to detect it?
run_make_test(q!
all:: ; @./foo bar baz
!,
'-O', "#MAKE#: ./foo: Command not found\n#MAKEFILE#:2: recipe for target 'all' failed\n#MAKE#: *** [all] Error 127\n", 512);
# This tells the test driver that the perl test script executed properly.
1;