Closed jean-airoldie closed 1 year ago
I've updated the CI, in case this was the cause of error, but alas.
For some reason the CI does not show the cause of the error on windows. I tried setting VSLANG=1033, since cc is known to drop errors silently if there is a language conflict, but to no avail.
Nevermind, you just have to look at the raw logs. So here are the errors on windows, extracted from the raw logs.
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared\afunix.h(23): error C2011: 'sockaddr_un': 'struct' type redefinition
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.hpp(38): error C2079: 'zmq::ipc_address_t::_address' uses undefined struct 'sockaddr_un'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared\afunix.h(23): error C2011: 'sockaddr_un': 'struct' type redefinition
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.hpp(38): error C2079: 'zmq::ipc_address_t::_address' uses undefined struct 'sockaddr_un'
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ip.cpp(551): error C2079: 'lcladdr' uses undefined struct 'sockaddr_un'
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.hpp(38): error C2079: 'zmq::ipc_address_t::_address' uses undefined struct 'sockaddr_un'
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.cpp(51): error C2079: '$S1' uses undefined struct 'sockaddr_un'
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.cpp(51): error C2618: illegal member designator in offsetof
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.cpp(76): error C2079: '$S2' uses undefined struct 'sockaddr_un'
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.cpp(76): error C2618: illegal member designator in offsetof
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.cpp(76): error C2660: 'strnlen': function does not take 1 arguments
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.cpp(79): error C2668: 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::assign': ambiguous call to overloaded function
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared\afunix.h(23): error C2011: 'sockaddr_un': 'struct' type redefinition
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.hpp(38): error C2079: 'zmq::ipc_address_t::_address' uses undefined struct 'sockaddr_un'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared\afunix.h(23): error C2011: 'sockaddr_un': 'struct' type redefinition
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.hpp(38): error C2079: 'zmq::ipc_address_t::_address' uses undefined struct 'sockaddr_un'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared\afunix.h(23): error C2011: 'sockaddr_un': 'struct' type redefinition
D:\a\zeromq-src-rs\zeromq-src-rs\vendor\src\ipc_address.hpp(38): error C2079: 'zmq::ipc_address_t::_address' uses undefined struct 'sockaddr_un'
A new compile time variable ZMQ_HAVE_STRUCT_SOCKADDR_UN
was added for windows, which was causing the issue. For now it is always set to 1
. It seems that this variable is designed for window 32bit cases, that I'm not sure we support in the first place.
Alright, all the tests are passing. However since the libzmq CMakeList was changed to much, its hard to know whether this will cause breakage or not in untested systems.
After some thoughts, I've decided to make this PR a breaking change, in case this breaks people's builds.
Windows build now failing with Visual Studio 2022