Hello Corinna, good catch. Patch is ok. Please apply.
Thanks, Kai 2014-04-24 15:13 GMT+02:00 Corinna Vinschen <[email protected]>: > Hi, > > > I just stumbled over a weird problem in Cygwin's socket code, which I > tracked down to a wrong definition of struct sockaddr_in6. It had the > correct size (28 bytes) in the application but it was supposedly 40 > bytes in the Cygwin DLL. > > I tracked it down to the fact that the re-definition of u_long for LP64 > systems is missing in ws2ipdef.h. While looking I found that ws2tcpip.h > and mstcpip.h are affected as well. > > So I'd like to propose the below patch which adds LP64 u_long overrides > to these files. > > > Thanks, > Corinna > > > * mstcpip.h: Add LP64 u_long override. > * ws2ipdef.h: Ditto. > * ws2tcpip.h: Ditto. > > > Index: mstcpip.h > =================================================================== > --- mstcpip.h (revision 6598) > +++ mstcpip.h (working copy) > @@ -9,6 +9,12 @@ > #include <_mingw_unicode.h> > #include <winapifamily.h> > > +#ifdef __LP64__ > +#pragma push_macro("u_long") > +#undef u_long > +#define u_long __ms_u_long > +#endif > + > struct tcp_keepalive { > u_long onoff; > u_long keepalivetime; > @@ -131,5 +137,9 @@ > #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ > #endif /*(_WIN32_WINNT >= 0x0502)*/ > > +#ifdef __LP64__ > +#pragma pop_macro("u_long") > +#endif > + > #endif /* _MSTCPIP_ */ > > Index: ws2ipdef.h > =================================================================== > --- ws2ipdef.h (revision 6598) > +++ ws2ipdef.h (working copy) > @@ -5,8 +5,15 @@ > #ifndef _WS2IPDEF_ > #define _WS2IPDEF_ > > +#include <_mingw_unicode.h> > #include <winapifamily.h> > > +#ifdef __LP64__ > +#pragma push_macro("u_long") > +#undef u_long > +#define u_long __ms_u_long > +#endif > + > #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) > > #include <in6addr.h> > @@ -132,4 +139,8 @@ > > #endif /* WINAPI_PARTION_DESKTOP. */ > > +#ifdef __LP64__ > +#pragma pop_macro("u_long") > +#endif > + > #endif /*_WS2IPDEF_ */ > Index: ws2tcpip.h > =================================================================== > --- ws2tcpip.h (revision 6598) > +++ ws2tcpip.h (working copy) > @@ -8,6 +8,12 @@ > > #include <_mingw_unicode.h> > > +#ifdef __LP64__ > +#pragma push_macro("u_long") > +#undef u_long > +#define u_long __ms_u_long > +#endif > + > #include <winsock2.h> > #include <ws2ipdef.h> > #include <psdk_inc/_ip_mreq1.h> > @@ -435,4 +441,8 @@ > } > #endif > > +#ifdef __LP64__ > +#pragma pop_macro("u_long") > +#endif > + > #endif /* _WS2TCPIP_H_ */ > > ------------------------------------------------------------------------------ > Start Your Social Network Today - Download eXo Platform > Build your Enterprise Intranet with eXo Platform Software > Java Based Open Source Intranet - Social, Extensible, Cloud Ready > Get Started Now And Turn Your Intranet Into A Collaboration Platform > http://p.sf.net/sfu/ExoPlatform > _______________________________________________ > Mingw-w64-public mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > ------------------------------------------------------------------------------ Start Your Social Network Today - Download eXo Platform Build your Enterprise Intranet with eXo Platform Software Java Based Open Source Intranet - Social, Extensible, Cloud Ready Get Started Now And Turn Your Intranet Into A Collaboration Platform http://p.sf.net/sfu/ExoPlatform _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
