unify and bump _WIN32_WINNT definition to Windows 8.1

Git for Windows doesn't support anything prior to Windows 8.1 since 2.47.0 and Git followed along with commits like ce6ccba (mingw: drop Windows 7-specific work-around, 2025-08-04). There is no need to pretend to the compiler that we still support Windows Vista, just to lock us out of easy access to newer APIs. There is also no need to have conflicting and unused definitions claiming we support some versions of Windows XP or even Windows NT 4.0. Bump all definitions of _WIN32_WINNT to a realistic value of Windows 8.1. This will also simplify code for a followup commit that will improve cpu core detection on multi-socket systems. Signed-off-by: Matthias Aßhauer <mha1993@live.de> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Matthias Aßhauer committed Apr 6, 2026 at 05:45 UTC 66dd13f3f72e8cad1327b6b134dec079936c4b07
5 files changed +7 -5
compat/mingw.c
+1 -1
@@ -2464,7 +2464,7 @@ repeat:
2464 if (supports_file_rename_info_ex) {
2465 /*
2466 * Our minimum required Windows version is still set to Windows
2467 - * Vista. We thus have to declare required infrastructure for
2467 + * 8.1. We thus have to declare required infrastructure for
2468 * FileRenameInfoEx ourselves until we bump _WIN32_WINNT to
2469 * 0x0A00. Furthermore, we have to handle cases where the
2470 * FileRenameInfoEx call isn't supported yet.
compat/nedmalloc/malloc.c.h
+1 -1
@@ -500,7 +500,7 @@ MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP
500 #ifdef WIN32
501 #define WIN32_LEAN_AND_MEAN
502 #ifndef _WIN32_WINNT
503 -#define _WIN32_WINNT 0x403
503 +#define _WIN32_WINNT 0x603
504 #endif
505 #include <windows.h>
506 #define HAVE_MMAP 1
compat/poll/poll.c
+2 -2
@@ -20,7 +20,7 @@
20
21 #define DISABLE_SIGN_COMPARE_WARNINGS
22
23 -/* To bump the minimum Windows version to Windows Vista */
23 +/* To bump the minimum Windows version to Windows 8.1 */
24 #include "git-compat-util.h"
25
26 /* Tell gcc not to warn about the (nfd < 0) tests, below. */
@@ -41,7 +41,7 @@
41 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
42 # define WIN32_NATIVE
43 # if defined (_MSC_VER) && !defined(_WIN32_WINNT)
44 -# define _WIN32_WINNT 0x0502
44 +# define _WIN32_WINNT 0x0603
45 # endif
46 # include <winsock2.h>
47 # include <windows.h>
compat/posix.h
+1 -1
@@ -76,7 +76,7 @@
76
77 #if defined(WIN32) && !defined(__CYGWIN__) /* Both MinGW and MSVC */
78 # if !defined(_WIN32_WINNT)
79 -# define _WIN32_WINNT 0x0600
79 +# define _WIN32_WINNT 0x0603
80 # endif
81 #define WIN32_LEAN_AND_MEAN /* stops windows.h including winsock.h */
82 #include <winsock2.h>
compat/win32/flush.c
+2
@@ -6,7 +6,9 @@ int win32_fsync_no_flush(int fd)
6 {
7 IO_STATUS_BLOCK io_status;
8
9 +#ifndef FLUSH_FLAGS_FILE_DATA_ONLY
10 #define FLUSH_FLAGS_FILE_DATA_ONLY 1
11 +#endif
12
13 DECLARE_PROC_ADDR(ntdll.dll, NTSTATUS, NTAPI, NtFlushBuffersFileEx,
14 HANDLE FileHandle, ULONG Flags, PVOID Parameters, ULONG ParameterSize,