This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch

[PATCH] Work around GNU Make bug involving shell built-ins

Message ID
DKIM signature
Download raw message
Patch: +1 -1
The workaround for MSYS2 in 475c111 interacts badly with a long-standing
bug in GNU Make where it avoids spawning a shell when it believes it can
handle a command itself as a sort of Bourne shell emulation. Since
"command" is typically implemented as a special shell built-in and not
an actual program, and GNU Make does not implement this built-in in its
Bourne shell emulation, GNU Make's shell function fails to invoke it
properly, resulting in an error:

    make: command: Command not found

One work-around is to set a custom shell that is not "/bin/sh" so that
GNU Make does not assume any particular shell semantics. For instance:

    make SHELL=dash

A second work-around is to use a shell feature not implemented by GNU
Make, such as redirection or variable assignment (this patch), causing
it to spawn an actual shell to handle the shell command.
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 4cb8d924c..5fe327519 100644
--- a/Makefile
+++ b/Makefile
@@ -308,7 +308,7 @@ CHECK		= sparse

# Handle MSYS2 weirdness
ifneq ($(CROSS_COMPILE),)
ifeq ($(shell command -v $(AR)),)
ifeq ($(shell _= command -v $(AR)),)
AR := $(CROSS_COMPILE)gcc-ar
STRIP := strip
WINDRES := windres
Reply to thread Export thread (mbox)