https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=2029784e05d9805aa074dcadb99c31311790b7ac

commit 2029784e05d9805aa074dcadb99c31311790b7ac
Author: Radek BartoĊˆ <radek.bar...@microsoft.com>
Date:   Mon Jun 9 18:14:14 2025 +0200

    Cygwin: Fix compatibility with w32api headers v13

Diff:
---
 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 22dfed63d..5ed0cb0ec 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 <w32api/ws2tcpip.h>
+/* 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 <w32api/mswsock.h>
+#undef cmsghdr
 #include <w32api/mstcpip.h>
 #include <netinet/tcp.h>
 #include <netinet/udp.h>
diff --git a/winsup/cygwin/fhandler/socket_local.cc 
b/winsup/cygwin/fhandler/socket_local.cc
index ea5ee67cc..0498edc40 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 <w32api/ws2tcpip.h>
+/* 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 <w32api/mswsock.h>
+#undef cmsghdr
 #include <unistd.h>
 #include <asm/byteorder.h>
 #include <sys/socket.h>
diff --git a/winsup/cygwin/local_includes/ntdll.h 
b/winsup/cygwin/local_includes/ntdll.h
index 97a83d1e3..fc2ab7a2e 100644
--- a/winsup/cygwin/local_includes/ntdll.h
+++ b/winsup/cygwin/local_includes/ntdll.h
@@ -490,6 +490,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;
@@ -510,6 +512,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 9d7224a21..579b1a70b 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 <w32api/ws2tcpip.h>
+/* 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 <w32api/mswsock.h>
+#undef cmsghdr
 #include <w32api/iphlpapi.h>
 #define gethostname cygwin_gethostname
 #include <unistd.h>

Reply via email to