This is a header-file change I made to accommodate atac, which does not grok
the gcc compound-statement extension.  I took the definitions from X11/Xpoll.h

--------------------------------------------------------------------------------
 time.h |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions
--------------------------------------------------------------------------------
Index: linux/time.h
--- old-include/linux/time.h	Tue Feb 13 12:55:59 1996
+++ new-include/linux/time.h	Thu May  8 19:53:27 1997
@@ -23,11 +23,36 @@
 void do_settimeofday(struct timeval *tv);
 #endif
 
+#ifdef HAVE_CONFIG_H
+
+#ifndef FD_SETSIZE
+#define FD_SETSIZE	256
+#endif
+
+#ifndef NFDBITS
+#define NFDBITS (sizeof(fd_mask) * NBBY)	/* bits per mask */
+#endif
+
+#ifndef FD_SET
+#define FD_SET(n, p)    ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_CLR
+#define FD_CLR(n, p)    ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_ISSET
+#define FD_ISSET(n, p)  ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_ZERO
+#define FD_ZERO(p)      bzero((char *)(p), sizeof(*(p)))
+#endif
+
+#else
 #define FD_SETSIZE		__FD_SETSIZE
 #define FD_SET(fd,fdsetp)	__FD_SET(fd,fdsetp)
 #define FD_CLR(fd,fdsetp)	__FD_CLR(fd,fdsetp)
 #define FD_ISSET(fd,fdsetp)	__FD_ISSET(fd,fdsetp)
 #define FD_ZERO(fdsetp)		__FD_ZERO(fdsetp)
+#endif
 
 /*
  * Names of the interval timers, and structure
