diff --git a/ghc/lib/misc/SocketPrim.lhs b/ghc/lib/misc/SocketPrim.lhs index d88e3d72e3cb62dd848f5ce0ebb028e420760952..e76118574e100dfffbe88dda8f5a09712be6c83b 100644 --- a/ghc/lib/misc/SocketPrim.lhs +++ b/ghc/lib/misc/SocketPrim.lhs @@ -1252,7 +1252,7 @@ use @withSocketsDo@...: \begin{code} withSocketsDo :: IO a -> IO a -#ifndef _WIN32 +#if !defined(HAVE_WINSOCK_H) || defined(__CYGWIN32__) withSocketsDo x = x #else withSocketsDo act = do diff --git a/ghc/lib/misc/cbits/ghcSockets.h b/ghc/lib/misc/cbits/ghcSockets.h index 175f8b886869a02ddd3764030225f959c303c5a5..f2f636a11fd8f9d8e275f5236b8d14e76e11c88a 100644 --- a/ghc/lib/misc/cbits/ghcSockets.h +++ b/ghc/lib/misc/cbits/ghcSockets.h @@ -1,7 +1,7 @@ #ifndef GHC_SOCKETS_H #define GHC_SOCKETS_H -#ifdef HAVE_WINSOCK_H +#if defined(HAVE_WINSOCK_H) && !defined(__CYGWIN__) #include <winsock.h> #else @@ -94,7 +94,7 @@ StgInt setSocketOption__ (StgInt, StgInt, StgInt); StgInt writeDescriptor (StgInt, StgAddr, StgInt); /* initWinSock.c */ -#ifdef _WIN32 +#if defined(HAVE_WINSOCK_H) && !defined(__CYGWIN__) StgInt initWinSock(); void shutdownWinSock(); #endif diff --git a/ghc/lib/misc/cbits/initWinSock.c b/ghc/lib/misc/cbits/initWinSock.c index 7ea4de6a9f9c899bf150dea6ca451fe5f5add636..d1c2b80677e7c6657dc0790f6b1c27c301ffe607 100644 --- a/ghc/lib/misc/cbits/initWinSock.c +++ b/ghc/lib/misc/cbits/initWinSock.c @@ -5,10 +5,13 @@ #include "stgio.h" -#ifdef _WIN32 +#if defined(HAVE_WINSOCK_H) && !defined(__CYGWIN__) +#define USE_WINSOCK +#endif -/* Initialising WinSock... */ +#ifdef USE_WINSOCK +/* Initialising WinSock... */ StgInt initWinSock () {