strengthen self-containedness check for sys/select.h
authorPaolo Bonzini <bonzini@gnu.org>
Mon, 29 Sep 2008 10:02:35 +0000 (12:02 +0200)
committerPaolo Bonzini <bonzini@gnu.org>
Mon, 29 Sep 2008 11:28:57 +0000 (13:28 +0200)
2008-09-29  Paolo Bonzini  <bonzini@gnu.org>
            Bruno Haible  <bruno@clisp.org>

* lib/sys_select.in.h: Include sys/time.h.
* m4/sys_select.h.m4: Test that struct timeval is fully defined.
* modules/sys_select: Depend on sys_time.
* tests/test-sys_select.c: Test that sys/select.h defines struct
timeval fully.

ChangeLog
lib/sys_select.in.h
m4/sys_select_h.m4
modules/sys_select
tests/test-sys_select.c

index bdff5cc..42f6401 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-09-29  Paolo Bonzini  <bonzini@gnu.org>
+            Bruno Haible  <bruno@clisp.org>
+
+       * lib/sys_select.in.h: Include sys/time.h.
+       * m4/sys_select.h.m4: Test that struct timeval is fully defined.
+       * modules/sys_select: Depend on sys_time.
+       * tests/test-sys_select.c: Test that sys/select.h defines struct
+       timeval fully.
+
 2008-09-29  Bruno Haible  <bruno@clisp.org>
 
        * lib/sys_socket.in.h: Wrap the definitions in 'extern "C"'.
index 255c02f..396f209 100644 (file)
    <sys/types.h>.  */
 # include <sys/types.h>
 
+/* On OSF/1 4.0, <sys/select.h> provides only a forward declaration
+   of 'struct timeval', and no definition of this type..  */
+# include <sys/time.h>
+
 /* The include_next requires a split double-inclusion guard.  */
 # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
 
index f9468af..865a414 100644 (file)
@@ -10,7 +10,8 @@ AC_DEFUN([gl_HEADER_SYS_SELECT],
   AC_CACHE_CHECK([whether <sys/select.h> is self-contained],
     [gl_cv_header_sys_select_h_selfcontained],
     [
-      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/select.h>]], [[]])],
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/select.h>]],
+                                        [[struct timeval b;]])],
         [gl_cv_header_sys_select_h_selfcontained=yes],
         [gl_cv_header_sys_select_h_selfcontained=no])
     ])
index f2f7698..4f13917 100644 (file)
@@ -10,6 +10,7 @@ Depends-on:
 alloca
 include_next
 sys_socket
+sys_time
 
 configure.ac:
 gl_HEADER_SYS_SELECT
index 6bdd650..053b6c6 100644 (file)
 
 #include <config.h>
 
+#include <sys/select.h>
+
+/* Check that the 'struct timeval' type is defined.  */
+struct timeval t1;
+
 #include <stdio.h>
 #include <string.h>
-#include <sys/select.h>
-#include <sys/time.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <fcntl.h>