Some Winsock errno:s conflict with the standard ones. Try to
restrict the redefines to things relevant for sockets.
/* Generated with:
cat /usr/i686-pc-mingw32/sys-root/mingw/include/winerror.h \
| awk '/#define WSAE.*WSABASE/{gsub("WSA", ""); print "#undef " $2 "\n#define " $2 " WSA" $2}' \
- | egrep -v '_QOS|PROVIDER|PROCTABLE'
+ | egrep -v 'EINTR|EBADF|EACCES|EFAULT|EINVAL|EMFILE|_QOS|PROVIDER|PROCTABLE'
*/
-#undef EINTR
-#define EINTR WSAEINTR
-#undef EBADF
-#define EBADF WSAEBADF
-#undef EACCES
-#define EACCES WSAEACCES
-#undef EFAULT
-#define EFAULT WSAEFAULT
-#undef EINVAL
-#define EINVAL WSAEINVAL
-#undef EMFILE
-#define EMFILE WSAEMFILE
#undef EWOULDBLOCK
#define EWOULDBLOCK WSAEWOULDBLOCK
#undef EINPROGRESS
#include <stdio.h>
#include <string.h>
+#include <errno.h>
#ifdef _WIN32
#include <winsock2.h>
#ifndef _WIN32_WCE
#include <os/winerrno.h>
#else
#include <sys/types.h>
-#include <errno.h>
#include <unistd.h>
#include <sys/time.h>
#endif
#include <stdio.h>
#include <string.h>
+#include <errno.h>
#ifdef _WIN32
#include <winsock2.h>
#define write(s,b,l) send(s,(const char*)b,l,0)
#include <os/winerrno.h>
#else
#include <sys/types.h>
-#include <errno.h>
#include <unistd.h>
#include <sys/time.h>
#endif