/* Provide a sys/times.h header file.
- Copyright (C) 2008 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
/* This file is supposed to be used on platforms where <sys/times.h>
is missing. */
-#ifndef _GL_SYS_TIMES_H
-# define _GL_SYS_TIMES_H
+#ifndef _@GUARD_PREFIX@_SYS_TIMES_H
-/* Get clock_t. */
-# include <time.h>
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+@PRAGMA_COLUMNS@
+
+# if @HAVE_SYS_TIMES_H@
+# @INCLUDE_NEXT@ @NEXT_SYS_TIMES_H@
+# endif
+
+# define _@GUARD_PREFIX@_SYS_TIMES_H
-/* The definition of GL_LINK_WARNING is copied here. */
+/* 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_WARN_ON_USE is copied here. */
# ifdef __cplusplus
extern "C" {
# endif
+# if !@HAVE_STRUCT_TMS@
+# if !GNULIB_defined_struct_tms
/* Structure describing CPU time used by a process and its children. */
struct tms
{
clock_t tms_cutime; /* User CPU time of dead children. */
clock_t tms_cstime; /* System CPU time of dead children. */
};
+# define GNULIB_defined_struct_tms 1
+# endif
+# 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
}
# endif
-#endif /* _GL_SYS_TIMES_H */
+#endif /* _@GUARD_PREFIX@_SYS_TIMES_H */