Browse Source

configure.ac: check for clock_gettime and CLOCK_MONOTONIC

Set or clear Makefile variables HAVE_CLOCK_GETTIME and
HAVE_CLOCK_MONOTONIC based upon results of the checks (overriding
default values from config.mak.uname).

CLOCK_MONOTONIC isn't available on RHEL3, but there are still RHEL3
systems being used in production.

Signed-off-by: Reuben Hawkins <reubenhwk@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Reuben Hawkins 10 years ago committed by Junio C Hamano
parent
commit
a6c3c638ac
  1. 6
      Makefile
  2. 1
      config.mak.uname
  3. 22
      configure.ac
  4. 2
      trace.c

6
Makefile

@ -343,6 +343,8 @@ all:: @@ -343,6 +343,8 @@ all::
# return NULL when it receives a bogus time_t.
#
# Define HAVE_CLOCK_GETTIME if your platform has clock_gettime in librt.
#
# Define HAVE_CLOCK_MONOTONIC if your platform has CLOCK_MONOTONIC in librt.

GIT-VERSION-FILE: FORCE
@$(SHELL_PATH) ./GIT-VERSION-GEN
@ -1402,6 +1404,10 @@ ifdef HAVE_CLOCK_GETTIME @@ -1402,6 +1404,10 @@ ifdef HAVE_CLOCK_GETTIME
EXTLIBS += -lrt
endif

ifdef HAVE_CLOCK_MONOTONIC
BASIC_CFLAGS += -DHAVE_CLOCK_MONOTONIC
endif

ifeq ($(TCLTK_PATH),)
NO_TCLTK = NoThanks
endif

1
config.mak.uname

@ -35,6 +35,7 @@ ifeq ($(uname_S),Linux) @@ -35,6 +35,7 @@ ifeq ($(uname_S),Linux)
LIBC_CONTAINS_LIBINTL = YesPlease
HAVE_DEV_TTY = YesPlease
HAVE_CLOCK_GETTIME = YesPlease
HAVE_CLOCK_MONOTONIC = YesPlease
endif
ifeq ($(uname_S),GNU/kFreeBSD)
HAVE_ALLOCA_H = YesPlease

22
configure.ac

@ -947,6 +947,28 @@ AC_CHECK_LIB([iconv], [locale_charset], @@ -947,6 +947,28 @@ AC_CHECK_LIB([iconv], [locale_charset],
[CHARSET_LIB=-lcharset])])
GIT_CONF_SUBST([CHARSET_LIB])
#
# Define HAVE_CLOCK_GETTIME=YesPlease if clock_gettime is available.
GIT_CHECK_FUNC(clock_gettime,
[HAVE_CLOCK_GETTIME=YesPlease],
[HAVE_CLOCK_GETTIME=])
GIT_CONF_SUBST([HAVE_CLOCK_GETTIME])

AC_DEFUN([CLOCK_MONOTONIC_SRC], [
AC_LANG_PROGRAM([[
#include <time.h>
clockid_t id = CLOCK_MONOTONIC;
]])])

#
# Define HAVE_CLOCK_MONOTONIC=YesPlease if CLOCK_MONOTONIC is available.
AC_MSG_CHECKING([for CLOCK_MONOTONIC])
AC_COMPILE_IFELSE([CLOCK_MONOTONIC_SRC],
[AC_MSG_RESULT([yes])
HAVE_CLOCK_MONOTONIC=YesPlease],
[AC_MSG_RESULT([no])
HAVE_CLOCK_MONOTONIC=])
GIT_CONF_SUBST([HAVE_CLOCK_MONOTONIC])
#
# Define NO_SETITIMER if you don't have setitimer.
GIT_CHECK_FUNC(setitimer,
[NO_SETITIMER=],

2
trace.c

@ -322,7 +322,7 @@ int trace_want(struct trace_key *key) @@ -322,7 +322,7 @@ int trace_want(struct trace_key *key)
return !!get_trace_fd(key);
}

#ifdef HAVE_CLOCK_GETTIME
#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC)

static inline uint64_t highres_nanos(void)
{

Loading…
Cancel
Save