summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Mark Levedahl <mlevedahl@gmail.com>2012-11-11 19:17:20 -0500
committerLibravatar Jeff King <peff@peff.net>2012-11-12 15:47:50 -0500
commit380a4d927bff693c42fc6b22c3547bdcaac4bdc3 (patch)
tree2c861c7d0fa8cea3939a5f3cf3110c031ea69e43
parentMerge branch 'ph/maint-submodule-status-fix' (diff)
downloadtgif-380a4d927bff693c42fc6b22c3547bdcaac4bdc3.tar.xz
Update cygwin.c for new mingw-64 win32 api headers
The cygwin project recently switched to a new implementation of the windows api, now using header files from the mingw-64 project. These new header files are incompatible with the way cygwin.c included the old headers: cygwin.c can be compiled using the new or the older (mingw) headers, but different files must be included in different order for each to work. The new headers are in use only for the current release series (based upon the v1.7.x dll version). The previous release series using the v1.5 dll is kept available but unmaintained for use on older versions of Windows. So, patch cygwin.c to use the new include ordering only if the dll version is 1.7 or higher. Signed-off-by: Mark Levedahl <mlevedahl@gmail.com> Signed-off-by: Jeff King <peff@peff.net>
-rw-r--r--Makefile4
-rw-r--r--compat/cygwin.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 53a766e283..504ce6ced2 100644
--- a/Makefile
+++ b/Makefile
@@ -1086,6 +1086,7 @@ ifeq ($(uname_O),Cygwin)
NO_SYMLINK_HEAD = YesPlease
NO_IPV6 = YesPlease
OLD_ICONV = UnfortunatelyYes
+ V15_MINGW_HEADERS = YesPlease
endif
NO_THREAD_SAFE_PREAD = YesPlease
NEEDS_LIBICONV = YesPlease
@@ -1893,6 +1894,9 @@ ifdef NO_REGEX
COMPAT_CFLAGS += -Icompat/regex
COMPAT_OBJS += compat/regex/regex.o
endif
+ifdef V15_MINGW_HEADERS
+ COMPAT_CFLAGS += -DV15_MINGW_HEADERS
+endif
ifdef USE_NED_ALLOCATOR
COMPAT_CFLAGS += -Icompat/nedmalloc
diff --git a/compat/cygwin.c b/compat/cygwin.c
index dfe9b3084f..59d86e4d15 100644
--- a/compat/cygwin.c
+++ b/compat/cygwin.c
@@ -1,6 +1,13 @@
#define WIN32_LEAN_AND_MEAN
+#ifdef V15_MINGW_HEADERS
#include "../git-compat-util.h"
#include "win32.h"
+#else
+#include <sys/stat.h>
+#include <sys/errno.h>
+#include "win32.h"
+#include "../git-compat-util.h"
+#endif
#include "../cache.h" /* to read configuration */
static inline void filetime_to_timespec(const FILETIME *ft, struct timespec *ts)