[Haskell-cafe] network-188.8.131.52 compiled for ghc 7.4.1 windows
hreinhardt at gmail.com
Tue Feb 7 16:23:50 CET 2012
(I submitted the patch that Johan linked to)
Network/Socket/Internal.hsc has the following code:
#if defined(WITH_WINSOCK) || defined(cygwin32_HOST_OS)
type CSaFamily = (#type unsigned short)
type CSaFamily = (#type u_char)
type CSaFamily = (#type sa_family_t)
You have patched this part to always use 'unsigned short'. But the real
issue is that WITH_WINSOCK is not defined, even though it should be. The
reason for this lies in include/HsNet.h:
#if defined(HAVE_WINSOCK_H) && !defined(cygwin32_HOST_OS)
# define WITH_WINSOCK 1
The problem here is that it checks for HAVE_WINSOCK_H, but the configure
script never defines this variable. Instead it defines HAVE_WINSOCK2_H. It
seems that the network library used Winsock1 in the past and in the
transition to Winsock2 someone forgot to change a few of the #ifdefs.
My patch just changes all occurences of HAVE_WINSOCK_H to HAVE_WINSOCK2_H.
You might want to try that and report back if it works for you.
2012/2/7 Alberto G. Corona <agocorona at gmail.com>
> Hi Johan,
> The patch is not for the current version of network and the code is
> quite different. Basically it is necesary to define this variable as
> "unsigned short" that is the thing intended in the patch. however I
> put it by brute force, without regard of the prerpocessor directives.
> With this change the code compiles well with:
> However my compiled library lack the methods defined as foreign. I´ll
> keep trying.
> 2012/2/6 Johan Tibell <johan.tibell at gmail.com>:
> > Hi,
> > Someone recently contributed a fix that should make network build with
> > 7.4: https://github.com/haskell/network/pull/25
> > Can you see if that works for you? I haven't yet had time to merge and
> > release that fix (I'm on vacation.)
> > -- Johan
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe