]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix the MS-Windows build
authorEli Zaretskii <eliz@gnu.org>
Mon, 2 Nov 2015 17:04:06 +0000 (19:04 +0200)
committerEli Zaretskii <eliz@gnu.org>
Mon, 2 Nov 2015 17:04:06 +0000 (19:04 +0200)
* src/thread.h [WINDOWSNT]: Include sys/socket.h.

* src/sysselect.h: Don't define fd_set and FD_* macros for
MS-Windows here.
* src/w32.h: Define them here.

* src/process.h (sys_select): Declare prototype.

* src/sysdep.c:
* src/process.c:
* src/filelock.c:
* src/emacs.c:
* src/callproc.c: Move inclusion of sys/select.h after lisp.h.
* nt/inc/socket.h: Include w32.h instead of sysselect.h

nt/inc/sys/socket.h
src/callproc.c
src/emacs.c
src/filelock.c
src/process.c
src/sysdep.c
src/sysselect.h
src/thread.h
src/w32.c
src/w32.h

index 6ad121699c5a0b5ca3b98081c20d57c21ec14ece..067effe929e644b7287db596fa43751f0a9995e7 100644 (file)
@@ -74,7 +74,7 @@ typedef unsigned short uint16_t;
 
 /* allow us to provide our own version of fd_set */
 #define fd_set ws_fd_set
-#include "sysselect.h"
+#include "w32.h"
 #endif /* EMACS_CONFIG_H */
 
 #if defined (HAVE_TIMEVAL) && defined (_MSC_VER)
index a6c7bdafdbaf6a39785431c8d5121c1c05d168e3..bb21c35dccc359865e120cc389be16b097bbde3c 100644 (file)
@@ -27,14 +27,12 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <sys/file.h>
 #include <fcntl.h>
-#ifdef WINDOWSNT
-#define NOMINMAX
-#include <sys/socket.h>        /* for fcntl */
-#endif
 
 #include "lisp.h"
 
 #ifdef WINDOWSNT
+#define NOMINMAX
+#include <sys/socket.h>        /* for fcntl */
 #include <windows.h>
 #include "w32.h"
 #define _P_NOWAIT 1    /* from process.h */
index 9dc4e42354741fdf735a2c4bd7e7db444cc01393..f91e5499916c51650c7a124cca18640f0df5b07c 100644 (file)
@@ -31,20 +31,18 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <close-stream.h>
 
+#define MAIN_PROGRAM
+#include "lisp.h"
+
 #ifdef WINDOWSNT
 #include <fcntl.h>
 #include <sys/socket.h>
 #include <mbstring.h>
+#include "w32.h"
 #include "w32heap.h"
 #endif
 
-#define MAIN_PROGRAM
-#include "lisp.h"
-
 #if defined WINDOWSNT || defined HAVE_NTGUI
-#ifdef WINDOWSNT
-#include "w32.h"
-#endif
 #include "w32select.h"
 #include "w32font.h"
 #include "w32common.h"
index b37319c9ae885ce7f04e82056f1c9440f94606fb..7f9b6e7f8e84b4c01420d67476dafdf11923cabc 100644 (file)
@@ -40,11 +40,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <sys/sysctl.h>
 #endif /* __FreeBSD__ */
 
-#ifdef WINDOWSNT
-#include <share.h>
-#include <sys/socket.h>        /* for fcntl */
-#endif
-
 #include <errno.h>
 
 #include <c-ctype.h>
@@ -53,6 +48,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "buffer.h"
 #include "coding.h"
 #ifdef WINDOWSNT
+#include <share.h>
+#include <sys/socket.h>        /* for fcntl */
 #include "w32.h"       /* for dostounix_filename */
 #endif
 
index 791f8f5c3085c449d498c0c20f4a53b2ab0502c3..5e9b687ba6033b4a8566544684480be4cb6d5d1b 100644 (file)
@@ -29,6 +29,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <unistd.h>
 #include <fcntl.h>
 
+#include "lisp.h"
+
 /* Only MS-DOS does not define `subprocesses'.  */
 #ifdef subprocesses
 
@@ -92,8 +94,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #endif /* subprocesses */
 
-#include "lisp.h"
-
 #include "systime.h"
 #include "systty.h"
 
@@ -126,7 +126,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #endif
 
 #ifdef WINDOWSNT
-#include "w32.h"
+extern int sys_select (int, fd_set *, fd_set *, fd_set *,
+                       struct timespec *, sigset_t *);
 #endif
 
 /* Work around GCC 4.7.0 bug with strict overflow checking; see
index ba6be57278e65a53763798cc13660515d5f356a0..d75dcd3f9e34175e85c0ce0c7c97442f7e843352 100644 (file)
@@ -39,17 +39,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <c-ctype.h>
 #include <utimens.h>
 
-#ifdef HAVE_SOCKETS
-#include <sys/socket.h>
-#include <netdb.h>
-#endif /* HAVE_SOCKETS */
-
-#ifdef TRY_AGAIN
-#ifndef HAVE_H_ERRNO
-extern int h_errno;
-#endif
-#endif /* TRY_AGAIN */
-
 #include "lisp.h"
 #include "sysselect.h"
 #include "blockinput.h"
@@ -68,6 +57,17 @@ extern int h_errno;
 # include <math.h>
 #endif
 
+#ifdef HAVE_SOCKETS
+#include <sys/socket.h>
+#include <netdb.h>
+#endif /* HAVE_SOCKETS */
+
+#ifdef TRY_AGAIN
+#ifndef HAVE_H_ERRNO
+extern int h_errno;
+#endif
+#endif /* TRY_AGAIN */
+
 #ifdef WINDOWSNT
 #define read sys_read
 #define write sys_write
index e0f7b4e13ee70ac9553660f0425828f59d5421ed..d6c5d1c7148b62c7d9e3f27040fe342e510ca154 100644 (file)
@@ -25,40 +25,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "lisp.h"
 
-#ifdef WINDOWSNT
-
-/* File descriptor set emulation.  */
-
-/* MSVC runtime library has limit of 64 descriptors by default */
-#define FD_SETSIZE  64
-typedef struct {
-  unsigned int bits[FD_SETSIZE / 32];
-} fd_set;
-
-/* standard access macros */
-#define FD_SET(n, p) \
-  do { \
-    if ((n) < FD_SETSIZE) { \
-      (p)->bits[(n)/32] |= (1 << (n)%32); \
-    } \
-  } while (0)
-#define FD_CLR(n, p) \
-  do { \
-    if ((n) < FD_SETSIZE) { \
-      (p)->bits[(n)/32] &= ~(1 << (n)%32); \
-    } \
-  } while (0)
-#define FD_ISSET(n, p) ((n) < FD_SETSIZE ? ((p)->bits[(n)/32] & (1 << (n)%32)) : 0)
-#define FD_ZERO(p) memset((p), 0, sizeof(fd_set))
-
-#define SELECT_TYPE fd_set
-
-#include "systime.h"
-extern int sys_select (int, SELECT_TYPE *, SELECT_TYPE *, SELECT_TYPE *,
-                      struct timespec *, sigset_t *);
-
-#else  /* not WINDOWSNT */
-
+/* The w32 build defines select stuff in w32.h, which is included
+   where w32 needs it, but not where sysselect.h is included.  The w32
+   definitions in w32.h are incompatible with the below.  */
+#ifndef WINDOWSNT
 #ifdef FD_SET
 #ifndef FD_SETSIZE
 #define FD_SETSIZE 64
index d155837ccad00f42380c3ce2ce279adeab96e9be..91bab8284e6564261e508f2798e22f5ef3011e92 100644 (file)
@@ -21,6 +21,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "regex.h"
 
+#ifdef WINDOWSNT
+#include <sys/socket.h>
+#endif
+
 #include "sysselect.h"         /* FIXME */
 #include "systime.h"           /* FIXME */
 
index 0966b8df1cea2f0850b5f2ac69b6cb0e07e61f57..93eb6284cf29348f4ea31c9d5d7703da656f430b 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -42,8 +42,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <mbstring.h>  /* for _mbspbrk, _mbslwr, _mbsrchr, ... */
 
-#include <sys/socket.h>
-
 #undef access
 #undef chdir
 #undef chmod
@@ -205,6 +203,7 @@ typedef struct _REPARSE_DATA_BUFFER {
 #endif
 
 /* TCP connection support.  */
+#include <sys/socket.h>
 #undef socket
 #undef bind
 #undef connect
index 7de05478e93fd1964579d66daef6bf9ff9a55e57..29a3ae35cbf626740732d37b860786ba1e329d79 100644 (file)
--- a/src/w32.h
+++ b/src/w32.h
@@ -25,6 +25,32 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <windows.h>
 
+/* File descriptor set emulation.  */
+
+/* MSVC runtime library has limit of 64 descriptors by default */
+#define FD_SETSIZE  64
+typedef struct {
+  unsigned int bits[FD_SETSIZE / 32];
+} fd_set;
+
+/* standard access macros */
+#define FD_SET(n, p) \
+  do { \
+    if ((n) < FD_SETSIZE) { \
+      (p)->bits[(n)/32] |= (1 << (n)%32); \
+    } \
+  } while (0)
+#define FD_CLR(n, p) \
+  do { \
+    if ((n) < FD_SETSIZE) { \
+      (p)->bits[(n)/32] &= ~(1 << (n)%32); \
+    } \
+  } while (0)
+#define FD_ISSET(n, p) ((n) < FD_SETSIZE ? ((p)->bits[(n)/32] & (1 << (n)%32)) : 0)
+#define FD_ZERO(p) memset((p), 0, sizeof(fd_set))
+
+#define SELECT_TYPE fd_set
+
 /* ------------------------------------------------------------------------- */
 
 /* child_process.status values */