Follow-up Comment #4, bug #57022 (project make): 1. gmake posix_spawn's dodgy 2. fork inside posix_spawn succeeds and posix_spawn returns 0. 3. gmake skips fallback to /bin/sh because posix_spawn's return code is not enoexec. 4. posix_spawn's child proceeds to exec dodgy and fails 5. posix_spawn does not have a fallback to /bin/sh and the child exits with 127.
The reason dodgy succeeds with SHELL=/bin/bash is gmake spawning /bin/bash and passing as a parameter to /bin/bash via argv. The reason dodgy fails with SHELL=/bin/sh is gmake treats SHELL=/bin/sh as if no shell was explicitly specified in the makefile and again spawns dodgy. Having configure disable posix_spawn was discussed here https://lists.gnu.org/archive/html/bug-make/2019-09/msg00000.html. It is possible have gmake always spawn a shell (subject to configure test). This solution'd cause gmake spawn a shell even when no shell is needed. Paul, what about replacing --disable-posix-spawn with --enable-posix-spawn? regards, Dmitry _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?57022> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make