sys_utsname: Add support for Minix.
authorBruno Haible <bruno@clisp.org>
Sun, 31 Jul 2011 21:28:02 +0000 (23:28 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 31 Jul 2011 21:28:02 +0000 (23:28 +0200)
* lib/sys_utsname.in.h [Minix]: Include <stddef.h> before
<sys/utsname.h>.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
* doc/posix-headers/sys_utsname.texi: Document the Minix problem.

ChangeLog
doc/posix-headers/sys_utsname.texi
lib/sys_utsname.in.h
m4/sys_utsname_h.m4

index 54311c4..5ed267e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2011-07-31  Bruno Haible  <bruno@clisp.org>
 
+       sys_utsname: Add support for Minix.
+       * lib/sys_utsname.in.h [Minix]: Include <stddef.h> before
+       <sys/utsname.h>.
+       * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
+       * doc/posix-headers/sys_utsname.texi: Document the Minix problem.
+
+2011-07-31  Bruno Haible  <bruno@clisp.org>
+
        strings: Add support for Minix.
        * lib/strings.in.h [Minix]: Include <sys/types.h> before <strings.h>.
        * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise.
index d536967..0759d26 100644 (file)
@@ -10,6 +10,9 @@ Portability problems fixed by Gnulib:
 @item
 This header file is missing on some platforms:
 mingw.
+@item
+This header file is not self-contained on some platforms:
+Minix 3.1.8.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index cc4dca0..0249e57 100644 (file)
 @PRAGMA_COLUMNS@
 
 #if @HAVE_SYS_UTSNAME_H@
+
+/* Minix 3.1.8 has a bug: <stddef.h> must be included before <sys/utsname.h>.
+   But avoid namespace pollution on glibc systems.  */
+# if defined __minix && !defined __GLIBC__
+#  include <stddef.h>
+# endif
+
 # @INCLUDE_NEXT@ @NEXT_SYS_UTSNAME_H@
+
 #endif
 
 #define _@GUARD_PREFIX@_SYS_UTSNAME_H
index 7b48257..bf87c0b 100644 (file)
@@ -1,4 +1,4 @@
-# sys_utsname_h.m4 serial 7
+# sys_utsname_h.m4 serial 8
 dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -20,6 +20,9 @@ AC_DEFUN([gl_SYS_UTSNAME_H],
   else
     HAVE_SYS_UTSNAME_H=1
     AC_CHECK_TYPES([struct utsname], [], [HAVE_STRUCT_UTSNAME=0], [[
+/* Minix 3.1.8 has a bug: <stddef.h> must be included before
+   <sys/utsname.h>.  */
+#include <stddef.h>
 #include <sys/utsname.h>
       ]])
   fi
@@ -27,7 +30,11 @@ AC_DEFUN([gl_SYS_UTSNAME_H],
 
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[#include <sys/utsname.h>
+  gl_WARN_ON_USE_PREPARE([[
+    /* Minix 3.1.8 has a bug: <stddef.h> must be included before
+       <sys/utsname.h>.  */
+    #include <stddef.h>
+    #include <sys/utsname.h>
     ]], [uname])
 ])