sys_utsname: Add support for Minix.
[gnulib.git] / lib / sys_utsname.in.h
index 3cd7aac..0249e57 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <sys/utsname.h>.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2011 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    along with this program; if not, write to the Free Software Foundation,
    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
-#ifndef _GL_SYS_UTSNAME_H
+#ifndef _@GUARD_PREFIX@_SYS_UTSNAME_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@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 _GL_SYS_UTSNAME_H
+#endif
 
-/* The definition of GL_LINK_WARNING is copied here.  */
+#define _@GUARD_PREFIX@_SYS_UTSNAME_H
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
 
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
 
 #ifdef __cplusplus
 extern "C" {
@@ -56,6 +65,7 @@ extern "C" {
 #  define _UTSNAME_MACHINE_LENGTH _UTSNAME_LENGTH
 # endif
 
+# if !GNULIB_defined_struct_utsname
 /* Structure describing the system and machine.  */
 struct utsname
   {
@@ -72,6 +82,9 @@ struct utsname
     /* Name of the hardware type the system is running on.  */
     char machine[_UTSNAME_MACHINE_LENGTH];
   };
+#  define GNULIB_defined_struct_utsname 1
+# endif
+
 #endif /* !@HAVE_STRUCT_UTSNAME@ */
 
 
@@ -81,10 +94,10 @@ extern int uname (struct utsname *buf) _GL_ARG_NONNULL ((1));
 # endif
 #elif defined GNULIB_POSIXCHECK
 # undef uname
-# define uname(b) \
-    (GL_LINK_WARNING ("uname is unportable - " \
-                      "use gnulib module uname for portability"), \
-     uname (b))
+# if HAVE_RAW_DECL_UNAME
+_GL_WARN_ON_USE (uname, "uname is unportable - "
+                 "use gnulib module uname for portability");
+# endif
 #endif
 
 
@@ -93,4 +106,4 @@ extern int uname (struct utsname *buf) _GL_ARG_NONNULL ((1));
 #endif
 
 
-#endif /* _GL_SYS_UTSNAME_H */
+#endif /* _@GUARD_PREFIX@_SYS_UTSNAME_H */