CLOCK_MONOTONIC isn't available on RHEL3, but there are still RHEL3 systems being used in production. This change makes compiling git less tedious on older platforms without CLOCK_MONOTONIC. --- Makefile | 4 ++++ config.mak.uname | 1 + configure.ac | 22 ++++++++++++++++++++++ trace.c | 2 +- 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 7482a4d..af551a0 100644 --- a/Makefile +++ b/Makefile @@ -1382,6 +1382,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 diff --git a/config.mak.uname b/config.mak.uname index a2f380f..926773e 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -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 diff --git a/configure.ac b/configure.ac index dcc4bf0..424dec5 100644 --- a/configure.ac +++ b/configure.ac @@ -923,6 +923,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=], diff --git a/trace.c b/trace.c index 4778608..bfbd48f 100644 --- a/trace.c +++ b/trace.c @@ -324,7 +324,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) { -- 2.2.0.68.g8f72f0c.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html