Import the gethrxtime module from gnulib.

gnulib 9e117ae955a5c6a0406140e62b76c3ef50e3bc2b.

* lib/gethrxtime.c, lib/gethrxtime.h, lib/gettime.c, lib/timespec.c,
lib/timespec.h, lib/xtime.h, m4/clock_time.m4, m4/gethrxtime.m4,
m4/gettime.m4, m4/timespec.m4: New files.
* m4/gnulib-cache.m4, m4/gnulib-comp.m4, lib/Makefile.am: Adjust.
This commit is contained in:
Alexandre Duret-Lutz 2012-10-08 21:59:59 +02:00
parent d7e8684d38
commit 756319739b
13 changed files with 510 additions and 2 deletions

31
m4/clock_time.m4 Normal file
View file

@ -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 <time.h> 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
])

73
m4/gethrxtime.m4 Normal file
View file

@ -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 <time.h>]])
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 <time.h>
# 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 <time.h>]],
[[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])
:
])

13
m4/gettime.m4 Normal file
View file

@ -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])
])

View file

@ -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
])

View file

@ -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

11
m4/timespec.m4 Normal file
View file

@ -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], [:])