[Haskell-cafe] Re: Building network package on Windows

Thomas ten Cate ttencate at gmail.com
Mon Jun 8 03:42:50 EDT 2009

On Mon, Jun 8, 2009 at 02:04, Iavor Diatchki<iavor.diatchki at gmail.com> wrote:
> Hello,
> Here is an update, in case anyone else runs into the same problem.
> My understanding, is that the problem was caused by a mistake in the
> "configure" script for the "network" package, which after (correctly)
> detecting that IPv6 functionality was not available on my platform, it
> (incorrectly) tried to "gain" this functionality by redefining the
> version of my platform.  Concretely, apparently I have "Windows Vista
> Basic Home Edition", which seems to identify itself as version 0x400,
> while the missing functions are only available on versions of windows
>>= 0x501.

0x400 is, if I'm not mistaken, Windows 95. Vista is 0x600 [1]. I don't
think they *identify* themselves as such; rather, the program itself
specifies what Windows versions it wants to be able to run on.

In particular, the macros _WIN32_WINNT and WINVER should be defined as
the *minimum* platform version on which the compiled binary is to
work. Therefore, if functionality from XP (0x501) is needed, it is
perfectly okay to redefine these macros to 0x501. This will flip some
switches in included header files that enable declarations for the
desired functionality. Of course, the binary will then only run on
platforms that actually have this functionality.

Hope that clears things up a bit.


[1] http://msdn.microsoft.com/en-us/library/aa383745.aspx

More information about the Haskell-Cafe mailing list