Fri 06 Feb 2004 02:21:48 PM UTC, original submission:
(Platform: QNX 6.2.0)
- When a "test" command is a shell builtin, and
- no /bin/test as a file is provided in the system,
all:
test
will fail with "make: test: Command not found" .
You could easily reproduce this by setting PATH to bogus path, as
$ PATH=/nosuchdir /usr/gnu/bin/make
POSIX says the line should be processed like system("test")
which will be execvp("/bin/sh","-c","test") which will succeed,
but GNU make tries to optimize avoiding /bin/sh,
which tries execvp("test") and fails.
GNU automake uses this bare "test" in several testsuite.
Suggested patch:
Just add "test" to the shell builtin table in job.c .
This shouldn't hurt platforms which has/needs explicit /bin/test.
================================================
--- job.c.dist Sat Aug 10 01:27:17 2002
+++ job.c Fri Feb 6 14:04:54 2004
@@ -2484,7 +2484,7 @@
"logout", "set", "umask", "wait", "while", "for",
"case", "if", ":", ".", "break", "continue",
"export", "read", "readonly", "shift", "times",
- "trap", "switch", 0 };
+ "trap", "switch", "test", 0 };
#endif /* WINDOWS32 */
#endif /* Amiga */
#endif /* _MSDOS_ */
================================================
|