Windows: Do not redefine _WIN32_WINNT
PATCH 1/1 Windows: Do not redefine _WIN32_WINNT
With MinGW runtime version 4.0 this interferes with the previous definition from sdkddkver.h.
--- compat/nedmalloc/malloc.c.h | 2 ++ git-compat-util.h | 2 ++ 2 files changed, 4 insertions(+)
compat/nedmalloc/malloc.c.h +2 -0
@@ -495,7 +495,9 @@ MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP#endif /* WIN32 */ #ifdef WIN32 #define WIN32_LEAN_AND_MEAN +#ifndef _WIN32_WINNT#define _WIN32_WINNT 0x403 +#endif #include <windows.h> #define HAVE_MMAP 1#define HAVE_MORECORE 0
git-compat-util.h +2 -0
@@ -93,7 +93,9 @@#undef __NO_INLINE__#ifdef WIN32 /* Both MinGW and MSVC */ +#ifndef _WIN32_WINNT#define _WIN32_WINNT 0x0502 +#endif #define WIN32_LEAN_AND_MEAN /* stops windows.h including winsock.h */ #include <winsock2.h> #include <windows.h>
Signature · 1 line
1.8.3.mingw.1.2.g56240b5.dirty
Quoted 5 lines · Sebastian Schuberth
git-compat-util.h +0
-0
git-compat-util.h line 101
Quoted 9 lines
git-compat-util.h +2
-0@@ -93,7 +93,9 @@#undef __NO_INLINE__#ifdef WIN32 /* Both MinGW and MSVC */ +#ifndef _WIN32_WINNT#define _WIN32_WINNT 0x0502 +#endif #define WIN32_LEAN_AND_MEAN /* stops windows.h including winsock.h */ #include <winsock2.h> #include <windows.h>
This unfortunately does not seem to match what I have. I think the patch is based on the codebase before these two:
380395d0 (mingw: rename WIN32 cpp macro to GIT_WINDOWS_NATIVE, 2013-05-02) 41f29991 (msvc: Fix compilation errors caused by poll.h emulation, 2013-01-31)
I could of course wiggle it in, if you want, but I wanted to know what is going on. Is it a pre-release freeze period on your side or something?
Quoted 9 lines · Junio C Hamano
This unfortunately does not seem to match what I have. I think the patch is based on the codebase before these two:
380395d0(mingw: rename WIN32 cpp macro toGIT_WINDOWS_NATIVE, 2013-05-02)41f29991(msvc: Fix compilation errors caused bypoll.hemulation, 2013-01-31)I could of course wiggle it in, if you want, but I wanted to know what is going on. Is it a pre-release freeze period on your side or something?
That's right, I currently have a code freeze at Git 1.8.3 because I need to solve several other issues with Git 1.8.4 on Windows first. I'd be grateful if you could "wiggle it in".
Signature · 1 line
Sebastian Schuberth
Quoted 8 lines · Sebastian Schuberth
Quoted 6 lines · Junio C Hamano
This unfortunately does not seem to match what I have. I think the patch is based on the codebase before these two:
380395d0(mingw: rename WIN32 cpp macro toGIT_WINDOWS_NATIVE, 2013-05-02)41f29991(msvc: Fix compilation errors caused bypoll.hemulation, 2013-01-31)
Quoted 7 lines
Quoted 3 lines
I could of course wiggle it in, if you want, but I wanted to know what is going on. Is it a pre-release freeze period on your side or something?
That's right, I currently have a code freeze at Git 1.8.3 because I need to solve several other issues with Git 1.8.4 on Windows first. I'd be grateful if you could "wiggle it in".
It seems that compat/poll/poll.c also defines _WIN32_WINNT (but only with _MSC_VER defined). The change to git-compat-util.h in this patch avoids redefinition for both MinGW and MSVC case. Do you also need to have this, too?
Here is what I tentatively queued on top of the three from Karsten, and your "Fix stat definitions".
-- >8 --
From: Sebastian Schuberth <[email protected]>
Date: Wed, 11 Sep 2013 18:06:31 +0200
Subject: [PATCH] Windows: do not redefine _WIN32_WINNT
With MinGW runtime version 4.0 this interferes with the previous definition from sdkddkver.h.
--- compat/nedmalloc/malloc.c.h | 2 ++ compat/poll/poll.c | 2 +- git-compat-util.h | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-)
compat/nedmalloc/malloc.c.h +2 -0
@@ -499,7 +499,9 @@ MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP#endif /* WIN32 */ #ifdef WIN32 #define WIN32_LEAN_AND_MEAN +#ifndef _WIN32_WINNT#define _WIN32_WINNT 0x403 +#endif #include <windows.h> #define HAVE_MMAP 1#define HAVE_MORECORE 0
compat/poll/poll.c +1 -1
@@ -39,7 +39,7 @@#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__# define WIN32_NATIVE -# if defined (_MSC_VER) +# if defined (_MSC_VER) && !defined(_WIN32_WINNT)# define _WIN32_WINNT 0x0502# endif # include <winsock2.h>
git-compat-util.h +1 -1
@@ -86,7 +86,7 @@#define _SGI_SOURCE 1#if defined(WIN32 ) && !defined(__CYGWIN__)/* Both MinGW and MSVC */ -# if defined (_MSC_VER) +# if defined (_MSC_VER) && !defined(_WIN32_WINNT)# define _WIN32_WINNT 0x0502# endif #define WIN32_LEAN_AND_MEAN /* stops windows.h including winsock.h */
Signature · 1 line
1.8.4-469-g57f7e3a
Quoted 4 lines · Junio C Hamano
It seems that
compat/poll/poll.calso defines_WIN32_WINNT(but only with_MSC_VERdefined). The change togit-compat-util.hin this patch avoids redefinition for both MinGW and MSVC case. Do you also need to have this, too?
In my patch I did not change poll.c because I did only check this issue with MinGW, not MSVC, so I never ran into the _MSC_VER code path. Back in 1.8.3 git-compat-util.h did define _WIN32_WINNT for both MinGW and MSVC, which is why in my patch I had to add the #ifndef / #endif. But I believe it's good to have these guards for both MinGW and MSVC, actually.
Quoted 2 lines
Here is what I tentatively queued on top of the three from Karsten, and your "Fix stat definitions".
Looks good to me, thanks!
Signature · 1 line
Sebastian Schuberth