On 2025-06-09 15:56, Jeremy Drake via Cygwin-patches wrote:
On Mon, 9 Jun 2025, Brian Inglis wrote:
On 2025-06-09 12:54, Jeremy Drake via Cygwin-patches wrote:
On Mon, 9 Jun 2025, Radek Barton via Cygwin-patches wrote:
Since today,
https://github.com/cygwin/cygwin/actions/runs/15537033468 workflow started
to fail as it seems that `cygwin/cygwin-install-action@master` action
started to use newer MinGW headers.
The attached patch fixes compatibility with v13 MinGW headers while
preserving compatibility with v12.
Perhaps in the case of this build, but not necessarily anywhere else in Cygwin
using BSD sockets.
The change to cygwin/socket.h concerns me, that is a public header, and
you can't assume they are including MinGW headers, and if they are how
they are configuring them (ie, _WIN32_WINNT define) or which ones they
are including. It looks like the mingw-w64 header #defines cmsghdr, maybe
an #ifndef cmsghdr with a comment about this situation? Or how do other
Cygwin headers handle potential conflicts with Windows headers?
I appear to be missing where Mingw headers other than ntstatus.h are included
in these Cygwin headers so how would Mingw version be defined here?
Inside Cygwin, additional Windows headers are included, including winsock
headers to implement sockets within Cygwin.
I understand that happens during the DLL build, but I am still not seeing where
any of those nested header includes, whether __INSIDE_CYGWIN__ or not, includes
any Mingw headers to define that version.
So I do not believe any such fix should be applied here.
It looks like the changes need to be made elsewhere across the code hierarchy.
What are the actual Mingw header definition changes causing conflicts, and do
any Cygwin headers, setup or other network apps code need to be adjusted to
take the Mingw header changes into account?
https://github.com/mingw-w64/mingw-w64/commit/c3b5e71d54aa596bba9fb8ec7c1f9f712e7c616a
Such details would be required to explain why the patch would be needed and
how it fixes the issue while taking compatibility with and any impacts on
Cygwin network apps into account.
This should perhaps be referred back to the w32api-headers maintainer to see
if he did any testing before deployment?
The conflict seems to be between the Mingw SIZE_T & INT definitions and the
Cygwin size_t & int definitions used in the respective struct cmsghdr definitions.
--
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