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

Jonathan Yong 10walls@gmail.com
Mon Jun 16 12:57:21 GMT 2025


On 6/9/25 11:02 PM, Brian Inglis via Cygwin-apps wrote:
> 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?

Thanks for debugging the issue. I'll make sure to do a test build before 
each release.



More information about the Cygwin-apps mailing list