[zeromq-dev] [PATCH] Refactor Windows support v3

Steven McCoy steven.mccoy at miru.hk
Sat Jun 18 00:51:40 CEST 2011

Ok, another cleanup attempt.  Important notes:

   - Windows atomic APIs require Windows 2000.
   - *getaddrinfo()* requires XP for MinGW to compile.
   - Windows 2000 + IPv6 preview or XP required for IPv6 aware *
   getaddrinfo()* version.
   - Windows 2000 pulls in *WspiapiGetAddrInfo()* not *getaddrinfo()*.
   - Potentially interesting function *IsWow64Process()* requires XP SP2.
   - Visual Studio 2010 requires XP SP3.
   - Visual Studio 2008 requires XP SP2.
   - Visual Studio 2005 requires 2000 SP4.
   - Visual Studio .NET 2003 requires NT 4.03.
   - ZeroMQ projects are currently targeting to Visual Studio 2008, the 2010
   IDE can update to the latest "solution" format.

So I pulled the NT 3.5 code as it doesn't match *zmq.h* and hence is broken
before even looking at atomics or NS API.

Extended *NOxxx* support for all *windows.h* items listed in SDK 7 as per
the intention of the leading comment:

*// The purpose of this header file is to turn on only the items actually
*// on the windows platform.*

Force target platform to be Windows XP if not overridden in the project to
ensure correct *getaddrinfo()* API is linked.

On MinGW32 if the version is already defined as NT 4.0 re-define to XP as

Verified build platforms on Windows 7 SP1 64-bit:

   - MSVC 2010 Express (32-bit)
   - MinGW32 on Cygwin (32-bit)
   - MinGW-w64 on Cygwin (32-bit)
   - MinGW-w64 on Cygwin (64-bit)
   - MinGW32 on MSYS (32-bit)

Verified build platforms on XP Mode on Windows 7:

   - MSVC 2008 SP1 Express (32-bit)

On Debian 7 (Wheezy) 64-bit:

   - MinGW-w64 (32-bit) - *package gcc-mingw-w64*
   - MinGW-w64 (64-bit)
   - MinGW32 (32-bit) - *package mingw32, conflicting dependencies with

I do actually have a Windows NT 4 & 2000 Server licenses but neither
function in a VM so completely useless.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20110617/60661581/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Refactor-Windows-versioning-and-WinSock-usage.patch
Type: application/octet-stream
Size: 6952 bytes
Desc: not available
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20110617/60661581/attachment.obj>

More information about the zeromq-dev mailing list