Updated: w32api-{headers,runtime} mingw64-{headers,runtime,winpthreads} gendef 13.0.0-1

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Mon Jun 9 23:02:54 GMT 2025


On 2025-06-09 15:45, Brian Inglis via Cygwin-apps wrote:
> On 2025-06-08 06:04, Jonathan Yong via Cygwin-announce wrote:
>> Now released for both 32bit and 64bit Cygwin:
>>
>> Notable changes:
>> * Added import libraries for msvcr40d.dll, msvcrtd.dll, msvcr70d.dll, 
>> msvcr71d.dll, msvcr80d.dll, msvcr100d.dll, msvcr110d.dll.
>> * Better CRT API consistency between UCRT and MSVCRT, making many APIs 
>> available to earlier versions of the MSVCR* runtime as well.
>> * CRTDLL stat API fixes.
>> * Updated Hyper-V headers.
>> * Synchronized with Wine headers (from Wine 10.9).
>> * Many other new win32 APIs.
>> * Fix _atexit call differing between DLLs and EXEs.
>> * Basic support for ARM64EC targets (arm64ec-w64-mingw32).
>> * Make it possible to build winpthreads with MSVC and clang-cl.
>> * Many small fixes for gendef, genidl and genpeimg.
> 
> We have reports of failing Cygwin builds after this update:
> 
>      https://cygwin.com/pipermail/cygwin-patches/2025q2/013754.html

Caused by changing the definition type to cmsghdr:

https://github.com/mingw-w64/mingw-w64/commit/c3b5e71d54aa596bba9fb8ec7c1f9f712e7c616a

+	#if (_WIN32_WINNT >= 0x0600)
*	#define _WSACMSGHDR cmsghdr
+	#endif
+
	  typedef struct _WSACMSGHDR {
	    SIZE_T cmsg_len;
	    INT cmsg_level;
	    INT cmsg_type;More actions
	  } WSACMSGHDR,*PWSACMSGHDR,*LPWSACMSGHDR;

$ grep -A8 '^struct\s\+cmsghdr' /usr/include/cygwin/socket.h
struct cmsghdr
{
   /* Amazing but true: The type of cmsg_len should be socklen_t but, just
      as on Linux, the definition of the kernel is incompatible with this,
      so the Windows socket headers define cmsg_len as SIZE_T. */
   size_t		cmsg_len;	/* Length of cmsghdr + data	*/
   int			cmsg_level;	/* Protocol			*/
   int			cmsg_type;	/* Protocol type		*/
};

$ grep -w 'typedef.*ULONG_PTR' /usr/include/w32api/basetsd.h | head -3
   __MINGW_EXTENSION typedef unsigned __int64 ULONG_PTR,*PULONG_PTR;
   typedef unsigned long ULONG_PTR,*PULONG_PTR;
   __MINGW_EXTENSION typedef ULONG_PTR SIZE_T,*PSIZE_T;

> https://github.com/cygwin/cygwin/actions/ 
> runs/15537033468%C2%A0workflow%C2%A0started
> 
> https://github.com/cygwin/cygwin/actions/runs/15537033468/job/43738461428
> 
> Was this upgrade tested with a current Cygwin build before deployment?
-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher  but when there is no more to cut
                                 -- Antoine de Saint-Exupéry


More information about the Cygwin-apps mailing list