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

Brian Inglis via Cygwin-apps <[email protected]>
Newsgroups gmane.os.cygwin.applications,gmane.os.cygwin.patches
Organization Systematic Software
Message-ID <[email protected]>
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
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.