On 07/03/11 16:31, Bruno Haible wrote: > On native Windows, > - <sys/socket.h> does not exist natively; gnulib provides it. > - The type fd_set and the FD_ZERO etc. macros are defined in <winsock2.h>. > Before your patch they were included via #include <sys/socket.h> which did > #include <winsock2.h>; now they are missing. > - The gnulib macro that defines HAVE_WINSOCK2_H is gl_HEADER_SYS_SOCKET or, > at least, gl_PREREQ_SYS_H_WINSOCK2. Such an invocation is fortunately > still > present in m4/sys_select_h.m4.
Thanks for that analysis. Windows is not my strong suit, but does the following little patch look reasonable? diff --git a/lib/sys_select.in.h b/lib/sys_select.in.h index 8cbeb66..cc39eed 100644 --- a/lib/sys_select.in.h +++ b/lib/sys_select.in.h @@ -84,11 +84,9 @@ # if defined __hpux # include <string.h> # endif -/* On native Windows platforms: - Get the 'fd_set' type. Also, gnulib's <sys/socket.h> redefines select - so as to hide the declaration from <winsock2.h>. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ -# include <sys/socket.h> +/* On native Windows platforms, get the 'fd_set' type and related macros. */ +# if @HAVE_WINSOCK2_H@ +# include <winsock2.h> # endif #endif