Did you also change the files in the /cbits/ folder? Because they also check for HAVE_WINSOCK_H.
2012/2/7 Alberto G. Corona <[email protected]> > The code is evolving and none of the versions match exactily with the > patch, but substituting HAVE_WINSOCK by HAVE WINSOCK2 in these files > solves the compilation problem at least in the network 2.3.0.10 > version from hackage. > > However it produces the same undefined references when this library is > imported in my application. It seems that some object code is not > included in the final library. I verified that at least some of these > undefined references correspond with C code in the source, but > somehow this is not included in the object library.... > > 2012/2/7 Johan Tibell <[email protected]>: > > Note that there are two branches on github, master and stable. You want > the > > latter. > > > > On Feb 7, 2012 8:23 AM, "Alberto G. Corona" <[email protected]> wrote: > >> > >> This is quite different. > >> I don´t know how but I was looking at some other older patch around > >> the same issue and I supposed that it was the one refered by Yohan > >> Tibell. > >> > >> I´ll try your patch. > >> > >> Thanks!. > >> > >> 2012/2/7 Holger Reinhardt <[email protected]>: > >> > Hi, > >> > > >> > (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) > >> > #elif defined(darwin_HOST_OS) > >> > type CSaFamily = (#type u_char) > >> > #else > >> > type CSaFamily = (#type sa_family_t) > >> > #endif > >> > > >> > 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 > >> > #endif > >> > > >> > 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 <[email protected]> > >> >> > >> >> 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: > >> >> > >> >> > >> >> > >> >> > http://neilmitchell.blogspot.com/2010/12/installing-haskell-network-library-on.html > >> >> > >> >> However my compiled library lack the methods defined as foreign. I´ll > >> >> keep trying. > >> >> > >> >> 2012/2/6 Johan Tibell <[email protected]>: > >> >> > 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 > >> >> [email protected] > >> >> http://www.haskell.org/mailman/listinfo/haskell-cafe > >> > > >> > >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
