diff --git a/lib/Makefile.am b/lib/Makefile.am
index b1fa573a2..e09524b30 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -21,7 +21,7 @@
# the same distribution terms as the rest of that program.
#
# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files --no-libtool --no-vc-files argp error mkstemp progname
+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files --no-libtool --no-vc-files argp error gethrxtime mkstemp progname
AUTOMAKE_OPTIONS = 1.5 gnits
@@ -215,6 +215,15 @@ EXTRA_libgnu_a_SOURCES += float.c itold.c
## end gnulib module float
+## begin gnulib module gethrxtime
+
+
+EXTRA_DIST += gethrxtime.c gethrxtime.h xtime.h
+
+EXTRA_libgnu_a_SOURCES += gethrxtime.c
+
+## end gnulib module gethrxtime
+
## begin gnulib module getopt-posix
BUILT_SOURCES += $(GETOPT_H)
@@ -248,6 +257,12 @@ libgnu_a_SOURCES += gettext.h
## end gnulib module gettext-h
+## begin gnulib module gettime
+
+libgnu_a_SOURCES += gettime.c
+
+## end gnulib module gettime
+
## begin gnulib module gettimeofday
@@ -1202,6 +1217,14 @@ EXTRA_DIST += time.in.h
## end gnulib module time
+## begin gnulib module timespec
+
+libgnu_a_SOURCES += timespec.c
+
+EXTRA_DIST += timespec.h
+
+## end gnulib module timespec
+
## begin gnulib module unistd
BUILT_SOURCES += unistd.h
diff --git a/lib/gethrxtime.c b/lib/gethrxtime.c
new file mode 100644
index 000000000..6e0263d6f
--- /dev/null
+++ b/lib/gethrxtime.c
@@ -0,0 +1,68 @@
+/* gethrxtime -- get high resolution real time
+
+ Copyright (C) 2005-2007, 2009-2012 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
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
+
+/* Written by Paul Eggert. */
+
+#include
+
+#include "gethrxtime.h"
+
+#include
+#include "timespec.h"
+
+/* Get the current time, as a count of the number of nanoseconds since
+ an arbitrary epoch (e.g., the system boot time). Prefer a
+ high-resolution clock that is not subject to resetting or
+ drifting. */
+
+xtime_t
+gethrxtime (void)
+{
+#if HAVE_NANOUPTIME
+ {
+ struct timespec ts;
+ nanouptime (&ts);
+ return xtime_make (ts.tv_sec, ts.tv_nsec);
+ }
+#else
+
+# if defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME
+ {
+ struct timespec ts;
+ if (clock_gettime (CLOCK_MONOTONIC, &ts) == 0)
+ return xtime_make (ts.tv_sec, ts.tv_nsec);
+ }
+# endif
+
+# if HAVE_MICROUPTIME
+ {
+ struct timeval tv;
+ microuptime (&tv);
+ return xtime_make (tv.tv_sec, 1000 * tv.tv_usec);
+ }
+
+# else
+ /* No monotonically increasing clocks are available; fall back on a
+ clock that might jump backwards, since it's the best we can do. */
+ {
+ struct timespec ts;
+ gettime (&ts);
+ return xtime_make (ts.tv_sec, ts.tv_nsec);
+ }
+# endif
+#endif
+}
diff --git a/lib/gethrxtime.h b/lib/gethrxtime.h
new file mode 100644
index 000000000..f09ef39c3
--- /dev/null
+++ b/lib/gethrxtime.h
@@ -0,0 +1,37 @@
+/* gethrxtime -- get high resolution real time
+
+ Copyright (C) 2005, 2009-2012 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
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
+
+/* Written by Paul Eggert. */
+
+#ifndef GETHRXTIME_H_
+# define GETHRXTIME_H_ 1
+
+# include "xtime.h"
+
+/* Get the current time, as a count of the number of nanoseconds since
+ an arbitrary epoch (e.g., the system boot time). Prefer a
+ high-resolution clock that is not subject to resetting or
+ drifting. */
+
+# if HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME
+# include
+static inline xtime_t gethrxtime (void) { return gethrtime (); }
+# else
+xtime_t gethrxtime (void);
+# endif
+
+#endif
diff --git a/lib/gettime.c b/lib/gettime.c
new file mode 100644
index 000000000..8075bfaf9
--- /dev/null
+++ b/lib/gettime.c
@@ -0,0 +1,48 @@
+/* gettime -- get the system clock
+
+ Copyright (C) 2002, 2004-2007, 2009-2012 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
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
+
+/* Written by Paul Eggert. */
+
+#include
+
+#include "timespec.h"
+
+#include
+
+/* Get the system time into *TS. */
+
+void
+gettime (struct timespec *ts)
+{
+#if HAVE_NANOTIME
+ nanotime (ts);
+#else
+
+# if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
+ if (clock_gettime (CLOCK_REALTIME, ts) == 0)
+ return;
+# endif
+
+ {
+ struct timeval tv;
+ gettimeofday (&tv, NULL);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+ }
+
+#endif
+}
diff --git a/lib/timespec.c b/lib/timespec.c
new file mode 100644
index 000000000..2b6098ed7
--- /dev/null
+++ b/lib/timespec.c
@@ -0,0 +1,3 @@
+#include
+#define _GL_TIMESPEC_INLINE _GL_EXTERN_INLINE
+#include "timespec.h"
diff --git a/lib/timespec.h b/lib/timespec.h
new file mode 100644
index 000000000..d0a2194f6
--- /dev/null
+++ b/lib/timespec.h
@@ -0,0 +1,92 @@
+/* timespec -- System time interface
+
+ Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2012 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
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
+
+#if ! defined TIMESPEC_H
+# define TIMESPEC_H
+
+# include
+
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_TIMESPEC_INLINE
+# define _GL_TIMESPEC_INLINE _GL_INLINE
+#endif
+
+/* Return negative, zero, positive if A < B, A == B, A > B, respectively.
+
+ For each time stamp T, this code assumes that either:
+
+ * T.tv_nsec is in the range 0..999999999; or
+ * T.tv_sec corresponds to a valid leap second on a host that supports
+ leap seconds, and T.tv_nsec is in the range 1000000000..1999999999; or
+ * T.tv_sec is the minimum time_t value and T.tv_nsec is -1; or
+ T.tv_sec is the maximum time_t value and T.tv_nsec is 2000000000.
+ This allows for special struct timespec values that are less or
+ greater than all possible valid time stamps.
+
+ In all these cases, it is safe to subtract two tv_nsec values and
+ convert the result to integer without worrying about overflow on
+ any platform of interest to the GNU project, since all such
+ platforms have 32-bit int or wider.
+
+ Replacing "(int) (a.tv_nsec - b.tv_nsec)" with something like
+ "a.tv_nsec < b.tv_nsec ? -1 : a.tv_nsec > b.tv_nsec" would cause
+ this function to work in some cases where the above assumption is
+ violated, but not in all cases (e.g., a.tv_sec==1, a.tv_nsec==-2,
+ b.tv_sec==0, b.tv_nsec==999999999) and is arguably not worth the
+ extra instructions. Using a subtraction has the advantage of
+ detecting some invalid cases on platforms that detect integer
+ overflow.
+
+ The (int) cast avoids a gcc -Wconversion warning. */
+
+_GL_TIMESPEC_INLINE int
+timespec_cmp (struct timespec a, struct timespec b)
+{
+ return (a.tv_sec < b.tv_sec ? -1
+ : a.tv_sec > b.tv_sec ? 1
+ : (int) (a.tv_nsec - b.tv_nsec));
+}
+
+/* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be
+ nonnegative. */
+_GL_TIMESPEC_INLINE int
+timespec_sign (struct timespec a)
+{
+ return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec;
+}
+
+struct timespec timespec_add (struct timespec, struct timespec)
+ _GL_ATTRIBUTE_CONST;
+struct timespec timespec_sub (struct timespec, struct timespec)
+ _GL_ATTRIBUTE_CONST;
+struct timespec dtotimespec (double)
+ _GL_ATTRIBUTE_CONST;
+
+/* Return an approximation to A, of type 'double'. */
+_GL_TIMESPEC_INLINE double
+timespectod (struct timespec a)
+{
+ return a.tv_sec + a.tv_nsec / 1e9;
+}
+
+void gettime (struct timespec *);
+int settime (struct timespec const *);
+
+_GL_INLINE_HEADER_END
+
+#endif
diff --git a/lib/xtime.h b/lib/xtime.h
new file mode 100644
index 000000000..adab518b1
--- /dev/null
+++ b/lib/xtime.h
@@ -0,0 +1,86 @@
+/* xtime -- extended-resolution integer time stamps
+
+ Copyright (C) 2005-2006, 2009-2012 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
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
+
+/* Written by Paul Eggert. */
+
+#ifndef XTIME_H_
+# define XTIME_H_ 1
+
+/* xtime_t is a signed type used for time stamps. It is an integer
+ type that is a count of nanoseconds -- except for obsolescent hosts
+ without sufficiently-wide integers, where it is a count of
+ seconds. */
+# if HAVE_LONG_LONG_INT
+typedef long long int xtime_t;
+# define XTIME_PRECISION 1000000000
+# else
+# include
+typedef long int xtime_t;
+# if LONG_MAX >> 31 >> 31 == 0
+# define XTIME_PRECISION 1
+# else
+# define XTIME_PRECISION 1000000000
+# endif
+# endif
+
+/* Return an extended time value that contains S seconds and NS
+ nanoseconds, without any overflow checking. */
+static inline xtime_t
+xtime_make (xtime_t s, long int ns)
+{
+ if (XTIME_PRECISION == 1)
+ return s;
+ else
+ return XTIME_PRECISION * s + ns;
+}
+
+/* Return the number of seconds in T, which must be nonnegative. */
+static inline xtime_t
+xtime_nonnegative_sec (xtime_t t)
+{
+ return t / XTIME_PRECISION;
+}
+
+/* Return the number of seconds in T. */
+static inline xtime_t
+xtime_sec (xtime_t t)
+{
+ return (XTIME_PRECISION == 1
+ ? t
+ : t < 0
+ ? (t + XTIME_PRECISION - 1) / XTIME_PRECISION - 1
+ : xtime_nonnegative_sec (t));
+}
+
+/* Return the number of nanoseconds in T, which must be nonnegative. */
+static inline long int
+xtime_nonnegative_nsec (xtime_t t)
+{
+ return t % XTIME_PRECISION;
+}
+
+/* Return the number of nanoseconds in T. */
+static inline long int
+xtime_nsec (xtime_t t)
+{
+ long int ns = t % XTIME_PRECISION;
+ if (ns < 0)
+ ns += XTIME_PRECISION;
+ return ns;
+}
+
+#endif
diff --git a/m4/clock_time.m4 b/m4/clock_time.m4
new file mode 100644
index 000000000..0bec0ef86
--- /dev/null
+++ b/m4/clock_time.m4
@@ -0,0 +1,31 @@
+# clock_time.m4 serial 10
+dnl Copyright (C) 2002-2006, 2009-2012 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Check for clock_gettime and clock_settime, and set LIB_CLOCK_GETTIME.
+# For a program named, say foo, you should add a line like the following
+# in the corresponding Makefile.am file:
+# foo_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
+
+AC_DEFUN([gl_CLOCK_TIME],
+[
+ dnl Persuade glibc and Solaris to declare these functions.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+ # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+
+ # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all*
+ # programs in the package would end up linked with that potentially-shared
+ # library, inducing unnecessary run-time overhead.
+ LIB_CLOCK_GETTIME=
+ AC_SUBST([LIB_CLOCK_GETTIME])
+ gl_saved_libs=$LIBS
+ AC_SEARCH_LIBS([clock_gettime], [rt posix4],
+ [test "$ac_cv_search_clock_gettime" = "none required" ||
+ LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
+ AC_CHECK_FUNCS([clock_gettime clock_settime])
+ LIBS=$gl_saved_libs
+])
diff --git a/m4/gethrxtime.m4 b/m4/gethrxtime.m4
new file mode 100644
index 000000000..6a54ee0f8
--- /dev/null
+++ b/m4/gethrxtime.m4
@@ -0,0 +1,73 @@
+# gethrxtime.m4 serial 11
+dnl Copyright (C) 2005-2006, 2008-2012 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Paul Eggert.
+
+AC_DEFUN([gl_GETHRXTIME],
+[
+ AC_REQUIRE([gl_ARITHMETIC_HRTIME_T])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gl_XTIME])
+ AC_CHECK_DECLS([gethrtime], [], [], [[#include ]])
+ LIB_GETHRXTIME=
+ if test $ac_cv_have_decl_gethrtime = no \
+ || test $gl_cv_arithmetic_hrtime_t = no; then
+ dnl Find libraries needed to link lib/gethrxtime.c.
+ AC_REQUIRE([gl_CLOCK_TIME])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([nanouptime])
+ if test $ac_cv_func_nanouptime != yes; then
+ AC_CACHE_CHECK([whether CLOCK_MONOTONIC or CLOCK_REALTIME is defined],
+ [gl_cv_have_clock_gettime_macro],
+ [AC_EGREP_CPP([have_clock_gettime_macro],
+ [
+# include
+# if defined CLOCK_MONOTONIC || defined CLOCK_REALTIME
+ have_clock_gettime_macro
+# endif
+ ],
+ [gl_cv_have_clock_gettime_macro=yes],
+ [gl_cv_have_clock_gettime_macro=no])])
+ if test $gl_cv_have_clock_gettime_macro = yes; then
+ LIB_GETHRXTIME=$LIB_CLOCK_GETTIME
+ fi
+ fi
+ fi
+ AC_SUBST([LIB_GETHRXTIME])
+])
+
+# Test whether hrtime_t is an arithmetic type.
+# It is not arithmetic in older Solaris c89 (which insists on
+# not having a long long int type).
+AC_DEFUN([gl_ARITHMETIC_HRTIME_T],
+[
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CACHE_CHECK([for arithmetic hrtime_t], [gl_cv_arithmetic_hrtime_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include ]],
+ [[hrtime_t x = 0; return x/x;]])],
+ [gl_cv_arithmetic_hrtime_t=yes],
+ [gl_cv_arithmetic_hrtime_t=no])])
+ if test $gl_cv_arithmetic_hrtime_t = yes; then
+ AC_DEFINE([HAVE_ARITHMETIC_HRTIME_T], [1],
+ [Define if you have an arithmetic hrtime_t type.])
+ fi
+])
+
+# Prerequisites of lib/xtime.h.
+AC_DEFUN([gl_XTIME],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ :
+])
+
+# Prerequisites of lib/gethrxtime.c.
+AC_DEFUN([gl_PREREQ_GETHRXTIME],
+[
+ AC_CHECK_FUNCS_ONCE([microuptime])
+ :
+])
diff --git a/m4/gettime.m4 b/m4/gettime.m4
new file mode 100644
index 000000000..7d03d1253
--- /dev/null
+++ b/m4/gettime.m4
@@ -0,0 +1,13 @@
+# gettime.m4 serial 8
+dnl Copyright (C) 2002, 2004-2006, 2009-2012 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_GETTIME],
+[
+ dnl Prerequisites of lib/gettime.c.
+ AC_REQUIRE([gl_CLOCK_TIME])
+ AC_REQUIRE([gl_TIMESPEC])
+ AC_CHECK_FUNCS_ONCE([gettimeofday nanotime])
+])
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
index a812b31a7..2e58988bd 100644
--- a/m4/gnulib-cache.m4
+++ b/m4/gnulib-cache.m4
@@ -27,7 +27,7 @@
# Specification in the form of a command-line invocation:
-# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files --no-libtool --no-vc-files argp error mkstemp progname
+# gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=tools --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files --no-libtool --no-vc-files argp error gethrxtime mkstemp progname
# Specification in the form of a few gnulib-tool.m4 macro invocations:
gl_LOCAL_DIR([])
@@ -36,6 +36,7 @@ gl_MODULES([
--no-vc-files
argp
error
+ gethrxtime
mkstemp
progname
])
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index 2f902d710..ca008da41 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -41,6 +41,7 @@ AC_DEFUN([gl_EARLY],
# Code from module alloca:
# Code from module alloca-opt:
# Code from module argp:
+ # Code from module clock-time:
# Code from module dirname-lgpl:
# Code from module dosname:
# Code from module double-slash-root:
@@ -51,9 +52,11 @@ AC_DEFUN([gl_EARLY],
# Code from module extern-inline:
# Code from module fcntl-h:
# Code from module float:
+ # Code from module gethrxtime:
# Code from module getopt-gnu:
# Code from module getopt-posix:
# Code from module gettext-h:
+ # Code from module gettime:
# Code from module gettimeofday:
# Code from module include_next:
# Code from module intprops:
@@ -100,6 +103,7 @@ AC_DEFUN([gl_EARLY],
# Code from module sysexits:
# Code from module tempname:
# Code from module time:
+ # Code from module timespec:
# Code from module unistd:
# Code from module vasnprintf:
# Code from module verify:
@@ -129,6 +133,7 @@ AC_DEFUN([gl_INIT],
m4_ifdef([AM_XGETTEXT_OPTION],
[AM_][XGETTEXT_OPTION([--flag=argp_error:2:c-format])
AM_][XGETTEXT_OPTION([--flag=argp_failure:4:c-format])])
+ gl_CLOCK_TIME
gl_DIRNAME_LGPL
gl_DOUBLE_SLASH_ROOT
gl_HEADER_ERRNO_H
@@ -149,6 +154,11 @@ AC_DEFUN([gl_INIT],
if test $REPLACE_ITOLD = 1; then
AC_LIBOBJ([itold])
fi
+ gl_GETHRXTIME
+ if test $ac_cv_have_decl_gethrtime = no || test $gl_cv_arithmetic_hrtime_t = no; then
+ AC_LIBOBJ([gethrxtime])
+ gl_PREREQ_GETHRXTIME
+ fi
gl_FUNC_GETOPT_GNU
if test $REPLACE_GETOPT = 1; then
AC_LIBOBJ([getopt])
@@ -170,6 +180,7 @@ AC_DEFUN([gl_INIT],
AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
AC_SUBST([LIBINTL])
AC_SUBST([LTLIBINTL])
+ gl_GETTIME
gl_FUNC_GETTIMEOFDAY
if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
AC_LIBOBJ([gettimeofday])
@@ -297,6 +308,7 @@ AC_DEFUN([gl_INIT],
gl_SYSEXITS
gl_FUNC_GEN_TEMPNAME
gl_HEADER_TIME_H
+ gl_TIMESPEC
gl_UNISTD_H
gl_FUNC_VASNPRINTF
gl_FUNC_VSNPRINTF
@@ -474,11 +486,14 @@ AC_DEFUN([gl_FILE_LIST], [
lib/float+.h
lib/float.c
lib/float.in.h
+ lib/gethrxtime.c
+ lib/gethrxtime.h
lib/getopt.c
lib/getopt.in.h
lib/getopt1.c
lib/getopt_int.h
lib/gettext.h
+ lib/gettime.c
lib/gettimeofday.c
lib/intprops.h
lib/itold.c
@@ -529,6 +544,8 @@ AC_DEFUN([gl_FILE_LIST], [
lib/tempname.c
lib/tempname.h
lib/time.in.h
+ lib/timespec.c
+ lib/timespec.h
lib/unistd.in.h
lib/vasnprintf.c
lib/vasnprintf.h
@@ -537,9 +554,11 @@ AC_DEFUN([gl_FILE_LIST], [
lib/wchar.in.h
lib/xsize.c
lib/xsize.h
+ lib/xtime.h
m4/00gnulib.m4
m4/alloca.m4
m4/argp.m4
+ m4/clock_time.m4
m4/dirname.m4
m4/double-slash-root.m4
m4/errno_h.m4
@@ -550,7 +569,9 @@ AC_DEFUN([gl_FILE_LIST], [
m4/fcntl-o.m4
m4/fcntl_h.m4
m4/float_h.m4
+ m4/gethrxtime.m4
m4/getopt.m4
+ m4/gettime.m4
m4/gettimeofday.m4
m4/gnulib-common.m4
m4/include_next.m4
@@ -598,6 +619,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/sysexits.m4
m4/tempname.m4
m4/time_h.m4
+ m4/timespec.m4
m4/unistd_h.m4
m4/vasnprintf.m4
m4/vsnprintf.m4
diff --git a/m4/timespec.m4 b/m4/timespec.m4
new file mode 100644
index 000000000..63c00e83c
--- /dev/null
+++ b/m4/timespec.m4
@@ -0,0 +1,11 @@
+#serial 15
+
+# Copyright (C) 2000-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl From Jim Meyering
+
+AC_DEFUN([gl_TIMESPEC], [:])