Did you run &quot;cabal clean&quot; before rebuilding with Git Bash? And can you post the exact runtime error you get?<br><br><div class="gmail_quote">2012/2/8 Alberto G. Corona <span dir="ltr">&lt;<a href="mailto:agocorona@gmail.com">agocorona@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I switched to Git bash and the runtime error produced by the library<br>
is the same.<br>
This error may be produced because  the configuration it does not<br>
detect the netwiorkin related includes such is socket.h. This does not<br>
exist neither in the ghc installation neither in GIT/Mingw<br>
<br>
<br>
2012/2/7 Holger Reinhardt &lt;<a href="mailto:hreinhardt@gmail.com">hreinhardt@gmail.com</a>&gt;:<br>
<div class="HOEnZb"><div class="h5">&gt; I just use the version of MSys that is included with Git [1]. This puts a<br>
&gt; &quot;Git bash&quot; icon on your desktop which you can then use to build the network<br>
&gt; library.<br>
&gt;<br>
&gt; [1] <a href="http://code.google.com/p/msysgit/" target="_blank">http://code.google.com/p/msysgit/</a><br>
&gt;<br>
&gt;<br>
&gt; 2012/2/7 Alberto G. Corona &lt;<a href="mailto:agocorona@gmail.com">agocorona@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; Nothing bur a long history of failures. The problem is the<br>
&gt;&gt; configuration and versioning of MinGW and MSys. This  is a nighmare.<br>
&gt;&gt;<br>
&gt;&gt; 2012/2/7 Holger Reinhardt &lt;<a href="mailto:hreinhardt@gmail.com">hreinhardt@gmail.com</a>&gt;:<br>
&gt;&gt; &gt; Oh you are using Cygwin. I&#39;m using MSys so this is why I cannot<br>
&gt;&gt; &gt; reproduce<br>
&gt;&gt; &gt; your problem. Is there anything preventing you from using MSys?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2012/2/7 Alberto G. Corona &lt;<a href="mailto:agocorona@gmail.com">agocorona@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; The &quot;problem&quot; this time is in &quot;Configure&quot; :<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; case &quot;$host&quot; in<br>
&gt;&gt; &gt;&gt; *-mingw32)<br>
&gt;&gt; &gt;&gt;        EXTRA_SRCS=&quot;cbits/initWinSock.c, cbits/winSockErr.c,<br>
&gt;&gt; &gt;&gt; cbits/asyncAccept.c&quot;<br>
&gt;&gt; &gt;&gt;        EXTRA_LIBS=ws2_32<br>
&gt;&gt; &gt;&gt;        CALLCONV=stdcall ;;<br>
&gt;&gt; &gt;&gt; *-solaris2*)<br>
&gt;&gt; &gt;&gt;        EXTRA_SRCS=&quot;cbits/ancilData.c&quot;<br>
&gt;&gt; &gt;&gt;        EXTRA_LIBS=&quot;nsl, socket&quot;<br>
&gt;&gt; &gt;&gt;        CALLCONV=ccall ;;<br>
&gt;&gt; &gt;&gt; *)<br>
&gt;&gt; &gt;&gt;        EXTRA_SRCS=&quot;cbits/ancilData.c&quot;<br>
&gt;&gt; &gt;&gt;        EXTRA_LIBS=<br>
&gt;&gt; &gt;&gt;        CALLCONV=ccall ;;<br>
&gt;&gt; &gt;&gt; esac<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Since IŽm cross-compiling with cygwin, the variable Host does not<br>
&gt;&gt; &gt;&gt; contain š*-muingw32&quot;  but &quot;i686-pc-cygwin&quot;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; changing the case , the library incorporates the lost C coded files.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Now the library links fine win imported, but there is a runtime error:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; NetworkSocket.hsc:(948,3)-(1007,23): Non-exhaustive patterns in case<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; maybe it is due to some other preprocessor directive mismatch<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2012/2/7 Holger Reinhardt &lt;<a href="mailto:hreinhardt@gmail.com">hreinhardt@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;&gt; &gt; Did you also change the files in the /cbits/ folder? Because they<br>
&gt;&gt; &gt;&gt; &gt; also<br>
&gt;&gt; &gt;&gt; &gt; check<br>
&gt;&gt; &gt;&gt; &gt; for HAVE_WINSOCK_H.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; 2012/2/7 Alberto G. Corona &lt;<a href="mailto:agocorona@gmail.com">agocorona@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; The code is evolving and none of the versions match exactily with<br>
&gt;&gt; &gt;&gt; &gt;&gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; patch, but substituting HAVE_WINSOCK by HAVE WINSOCK2 in these files<br>
&gt;&gt; &gt;&gt; &gt;&gt; solves the compilation problem at least in the network 2.3.0.10<br>
&gt;&gt; &gt;&gt; &gt;&gt; version from hackage.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; However it produces the same undefined references when this library<br>
&gt;&gt; &gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; imported in my application. It seems that some object code is not<br>
&gt;&gt; &gt;&gt; &gt;&gt; included in the final library.  I verified that at least some of<br>
&gt;&gt; &gt;&gt; &gt;&gt; these<br>
&gt;&gt; &gt;&gt; &gt;&gt; undefined references correspond with  C code in the source, but<br>
&gt;&gt; &gt;&gt; &gt;&gt; somehow this is not included in the object library....<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; 2012/2/7 Johan Tibell &lt;<a href="mailto:johan.tibell@gmail.com">johan.tibell@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; Note that there are two branches on github, master and stable. You<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; want<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; latter.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; On Feb 7, 2012 8:23 AM, &quot;Alberto G. Corona&quot; &lt;<a href="mailto:agocorona@gmail.com">agocorona@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; This is quite different.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I donŽt know how but I was looking at some other older patch<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; around<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; the same issue and I supposed that it was the one refered by<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Yohan<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Tibell.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; IŽll try your patch.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Thanks!.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; 2012/2/7 Holger Reinhardt &lt;<a href="mailto:hreinhardt@gmail.com">hreinhardt@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Hi,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; (I submitted the patch that Johan linked to)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Network/Socket/Internal.hsc has the following code:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; #if defined(WITH_WINSOCK) || defined(cygwin32_HOST_OS)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; type CSaFamily = (#type unsigned short)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; #elif defined(darwin_HOST_OS)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; type CSaFamily = (#type u_char)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; #else<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; type CSaFamily = (#type sa_family_t)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; #endif<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; You have patched this part to always use &#39;unsigned short&#39;. But<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; real<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; issue is that WITH_WINSOCK is not defined, even though it<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; should<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; be. The<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; reason for this lies in include/HsNet.h:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; #if defined(HAVE_WINSOCK_H) &amp;&amp; !defined(cygwin32_HOST_OS)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; # define WITH_WINSOCK  1<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; #endif<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; The problem here is that it checks for HAVE_WINSOCK_H, but the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; configure<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; script never defines this variable. Instead it<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; defines HAVE_WINSOCK2_H.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; It<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; seems that the network library used Winsock1 in the past and in<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; transition to Winsock2 someone forgot to change a few of the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; #ifdefs.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; My patch just changes all occurences of HAVE_WINSOCK_H<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; to HAVE_WINSOCK2_H.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; You might want to try that and report back if it works for you.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; 2012/2/7 Alberto G. Corona &lt;<a href="mailto:agocorona@gmail.com">agocorona@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Hi Johan,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; The patch is not for the current version of network and the<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; code<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; quite different. Basically it is necesary to  define this<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; variable<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; as<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &quot;unsigned short&quot; that is the thing intended in the patch.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; however<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; put it by brute force, without regard of the prerpocessor<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; directives.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; With this change the code compiles well with:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="http://neilmitchell.blogspot.com/2010/12/installing-haskell-network-library-on.html" target="_blank">http://neilmitchell.blogspot.com/2010/12/installing-haskell-network-library-on.html</a><br>


&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; However my compiled library lack the methods defined as<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; foreign.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; IŽll<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; keep trying.<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; 2012/2/6 Johan Tibell &lt;<a href="mailto:johan.tibell@gmail.com">johan.tibell@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Hi,<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Someone recently contributed a fix that should make network<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; build<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; with<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; 7.4: <a href="https://github.com/haskell/network/pull/25" target="_blank">https://github.com/haskell/network/pull/25</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Can you see if that works for you? I haven&#39;t yet had time to<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; merge<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; and<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; release that fix (I&#39;m on vacation.)<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; -- Johan<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Haskell-Cafe mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>