From c1d0e2de466c68628dbef1eed3de374ffa4325e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Radek=20Barto=C5=88?= Date: Mon, 9 Jun 2025 18:14:14 +0200 Subject: [PATCH 55/N] Cygwin: Fix compatibility with w32api headers v13 (cherry picked from commit 2029784e05d9805aa074dcadb99c31311790b7ac) --- winsup/cygwin/fhandler/socket_inet.cc | 5 +++++ winsup/cygwin/fhandler/socket_local.cc | 5 +++++ winsup/cygwin/local_includes/ntdll.h | 4 ++++ winsup/cygwin/net.cc | 5 +++++ 4 files changed, 19 insertions(+) diff --git a/winsup/cygwin/fhandler/socket_inet.cc b/winsup/cygwin/fhandler/socket_inet.cc index 63cc498..24db244 100644 --- a/winsup/cygwin/fhandler/socket_inet.cc +++ b/winsup/cygwin/fhandler/socket_inet.cc @@ -20,7 +20,12 @@ #undef u_long #define u_long __ms_u_long #include +/* 2025-06-09: win32api headers v13 now define a cmsghdr type which clashes with + our socket.h. Arrange not to see it here. */ +#undef cmsghdr +#define cmsghdr __ms_cmsghdr #include +#undef cmsghdr #include #include #include diff --git a/winsup/cygwin/fhandler/socket_local.cc b/winsup/cygwin/fhandler/socket_local.cc index e4a8816..72b0720 100644 --- a/winsup/cygwin/fhandler/socket_local.cc +++ b/winsup/cygwin/fhandler/socket_local.cc @@ -21,7 +21,12 @@ #define u_long __ms_u_long #include "ntsecapi.h" #include +/* 2025-06-09: win32api headers v13 now define a cmsghdr type which clashes with + our socket.h. Arrange not to see it here. */ +#undef cmsghdr +#define cmsghdr __ms_cmsghdr #include +#undef cmsghdr #include #include #include diff --git a/winsup/cygwin/local_includes/ntdll.h b/winsup/cygwin/local_includes/ntdll.h index 4497fe5..2991672 100644 --- a/winsup/cygwin/local_includes/ntdll.h +++ b/winsup/cygwin/local_includes/ntdll.h @@ -489,6 +489,8 @@ typedef struct _FILE_DISPOSITION_INFORMATION_EX // 64 ULONG Flags; } FILE_DISPOSITION_INFORMATION_EX, *PFILE_DISPOSITION_INFORMATION_EX; +#if __MINGW64_VERSION_MAJOR < 13 + typedef struct _FILE_STAT_INFORMATION // 68 { LARGE_INTEGER FileId; @@ -509,6 +511,8 @@ typedef struct _FILE_CASE_SENSITIVE_INFORMATION // 71 ULONG Flags; } FILE_CASE_SENSITIVE_INFORMATION, *PFILE_CASE_SENSITIVE_INFORMATION; +#endif + enum { FILE_LINK_REPLACE_IF_EXISTS = 0x01, FILE_LINK_POSIX_SEMANTICS = 0x02, diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc index 737e494..8e8e32f 100644 --- a/winsup/cygwin/net.cc +++ b/winsup/cygwin/net.cc @@ -18,7 +18,12 @@ details. */ #undef u_long #define u_long __ms_u_long #include +/* 2025-06-09: win32api headers v13 now define a cmsghdr type which clashes with + our socket.h. Arrange not to see it here. */ +#undef cmsghdr +#define cmsghdr __ms_cmsghdr #include +#undef cmsghdr #include #define gethostname cygwin_gethostname #include