Network library patches

Claus Reinke claus.reinke at talk21.com
Tue Feb 16 18:10:28 EST 2010


> 1) Install Cygwin 1.7 (include autoreconf)
..
> 4) Change all instances of CALLCONV to stdcall
> 5) cabal install
>
> Please can you apply the attached patch, which should be compatible
> with Linux/Mac too. I found lots of references to CALLCONV all over
> the place, but couldn't figure out where it started/ended up - my
> attempts at #define were rather unsuccessful. Could you please change
> the logic so Windows gets stdcall as standard?

That part rings a bell, as the opengl binding had the same issue
when dropping out of ghc's extralibs: those packages tend to be
integrated into ghc's build system (or one version thereof), which
sets things like CALLCONV. This particular setting tended to
happen (ghc's build system has changed since I last looked, and I
can't check right now) in configure (generated from configure.ac),
by simply checking the build's $host variable for '*-mingw32'.

This doesn't work when building on cygwin (even when using
the mingw tool chain, configure will see cygwin as the host),
and the simple workaround was only documented for ghc
builds, not for the packages depending on ghc's build system.

If that information is still relevant, you should be able to get
around the CALLCONV issue when building from cygwin by
passing a configure option. Here is the example that used to
do the trick for building opengl/glut from cygwin:

    cabal install opengl 
glut --configure-option="--host=i386-unknown-mingw32" --reinstall

A better solution would be for configure to test for the
gcc tool chain, not the host environment, before setting
CALLCONV. Might apply to other packages that have
dropped out of the old extralibs.

Hope this helps,
Claus
 



More information about the Libraries mailing list