mingw: activate alloca
authorKirill Smelkov <kirr@mns.spb.ru>
Wed, 9 Apr 2014 12:48:27 +0000 (16:48 +0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 9 Apr 2014 17:08:35 +0000 (10:08 -0700)
Both MSVC and MINGW have alloca(3) definitions in malloc.h, so by moving
win32-compat alloca.h from compat/vcbuild/include/ to compat/win32/ ,
which is included by both MSVC and MINGW CFLAGS, we can make alloca()
work on both those Windows environments.

In MINGW, malloc.h has explicit check for GNUC and if it is so, defines
alloca to __builtin_alloca, so it looks like we don't need to add any
code to here-shipped alloca.h to get optimum performance.

Compile-tested on Windows in MSysGit.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Acked-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/vcbuild/include/alloca.h [deleted file]
compat/win32/alloca.h [new file with mode: 0644]
config.mak.uname
diff --git a/compat/vcbuild/include/alloca.h b/compat/vcbuild/include/alloca.h
deleted file mode 100644 (file)
index c0d7985..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <malloc.h>
diff --git a/compat/win32/alloca.h b/compat/win32/alloca.h
new file mode 100644 (file)
index 0000000..c0d7985
--- /dev/null
@@ -0,0 +1 @@
+#include <malloc.h>
index 71602ee9a16951bf480e0855352052b5965f0492..9967de66a2c7f4c52c1f218f434ed8aeb67254b8 100644 (file)
@@ -480,6 +480,7 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
 endif
 ifneq (,$(findstring MINGW,$(uname_S)))
        pathsep = ;
+       HAVE_ALLOCA_H = YesPlease
        NO_PREAD = YesPlease
        NEEDS_CRYPTO_WITH_SSL = YesPlease
        NO_LIBGEN_H = YesPlease