futimens: fix configure check
[gnulib.git] / lib / sys_times.in.h
index 381d7de..57f3a72 100644 (file)
@@ -1,5 +1,5 @@
 /* Provide a sys/times.h header file.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008-2010 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
    is missing.  */
 
 #ifndef _GL_SYS_TIMES_H
+
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+
+# if @HAVE_SYS_TIMES_H@
+#  @INCLUDE_NEXT@ @NEXT_SYS_TIMES_H@
+# endif
+
 # define _GL_SYS_TIMES_H
 
-/* Get clock_t. */
-# include <time.h>
+/* Get clock_t.
+   But avoid namespace pollution on glibc systems.  */
+# ifndef __GLIBC__
+#  include <time.h>
+# endif
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
 
-/* The definition of GL_LINK_WARNING is copied here.  */
+/* The definition of _GL_WARN_ON_USE is copied here.  */
 
 # ifdef __cplusplus
 extern "C" {
 # endif
 
+# if !@HAVE_STRUCT_TMS@
   /* Structure describing CPU time used by a process and its children.  */
   struct tms
   {
@@ -41,15 +56,18 @@ extern "C" {
     clock_t tms_cutime;         /* User CPU time of dead children.  */
     clock_t tms_cstime;         /* System CPU time of dead children.  */
   };
+# endif
 
 # if @GNULIB_TIMES@
-  extern clock_t times (struct tms *buffer);
+#  if !@HAVE_TIMES@
+  extern clock_t times (struct tms *buffer) _GL_ARG_NONNULL ((1));
+#  endif
 # elif defined GNULIB_POSIXCHECK
 #  undef times
-#  define times(s)                                              \
-  (GL_LINK_WARNING ("times is unportable - "                    \
-                    "use gnulib module times for portability"), \
-   times (s))
+#  if HAVE_RAW_DECL_TIMES
+_GL_WARN_ON_USE (times, "times is unportable - "
+                 "use gnulib module times for portability");
+#  endif
 # endif
 
 # ifdef __cplusplus