Found while trying to cross-compile libvirt on Fedora 12 for Windows.
gnulib redefines 'close' to 'close_used_without_including_unistd_h'
in sys/socket.h if winsock2.h is present and unistd.h has not been
included before sys/socket.h. Reorder some includes to fix this.
#include <config.h>
+#include <unistd.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <dirent.h>
#include <config.h>
-/* Windows socket compatibility functions. */
-#include <errno.h>
-#include <sys/socket.h>
-
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
-#ifndef HAVE_WINSOCK2_H /* Unix & Cygwin. */
+/* Windows socket compatibility functions. */
+#include <errno.h>
+#include <sys/socket.h>
+
+#ifndef HAVE_WINSOCK2_H /* Unix & Cygwin. */
# include <sys/un.h>
# include <net/if.h>
# include <netinet/in.h>
#include "verify.h"
#include "internal.h"
+#include <unistd.h>
#include <sys/select.h>
#include <sys/types.h>