$NetBSD$
--- iocntl.c.dist	1994-03-21 21:42:49.000000000 +0000
+++ iocntl.c	2005-04-05 15:15:23.000000000 +0100
@@ -4,7 +4,7 @@
 
 #include "netmaze.h"
 
-#ifdef RS6000
+#if (RS6000 || Linux)
  #include <sys/select.h>
 #endif
 
@@ -16,8 +16,13 @@
 #include <sys/ioctl.h>
 
 #ifdef HAVE_FDSET
+# ifdef Linux
+ fd_set readmask;
+ fd_set writemask;
+# else
  struct fd_set readmask;
  struct fd_set writemask;
+# endif
 #else
  struct fd_mask readmask;
  struct fd_mask writemask;
@@ -63,7 +68,7 @@
  #ifdef RS6000 /* ibm rs/6000 */
    sigemptyset(&vec.sa_mask);
  #else
-  vec.sa_mask = 0;
+   (void)sigprocmask (SIG_SETMASK, 0, NULL);
  #endif
   vec.sa_flags = 0;
   if ( sigaction(SIGIO, &vec, (struct sigaction *) 0) == -1)
@@ -144,8 +149,13 @@
   static char	buf[256];
 
 #ifdef HAVE_FDSET
+# ifdef Linux
+ fd_set readmask1;
+ fd_set writemask1;
+# else
   struct fd_set	 readmask1;
   struct fd_set	 writemask1;
+# endif
 #else
   struct fd_mask readmask1;
   struct fd_mask writemask1;
