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.