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

Jonathan Yong via Cygwin-apps <[email protected]>
Newsgroups gmane.os.cygwin.applications
Message-ID <[email protected]>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.