Provide gettimeofday fallback for clock_gettime.
authorWerner Koch <wk@gnupg.org>
Thu, 10 May 2012 18:28:23 +0000 (20:28 +0200)
committerWerner Koch <wk@gnupg.org>
Thu, 10 May 2012 18:28:55 +0000 (20:28 +0200)
* configure.ac (AC_CHECK_FUNCS): Check for gettimeofday.
* src/npth.c (npth_clock_gettime): Use gettimeofday if clock_gettime
is not available.
--

This should fix the MacOS problem.

configure.ac
src/npth.c

index 7e138f1..f927978 100644 (file)
@@ -259,7 +259,7 @@ if test "$have_w32_system" = no; then
   fi
 fi
 
-AC_CHECK_FUNCS([select pselect])
+AC_CHECK_FUNCS([select pselect gettimeofday])
 
 npth_LIBSOCKET
 config_libs="$config_libs $LIBSOCKET"
index c998732..56cf455 100644 (file)
@@ -640,8 +640,18 @@ npth_protect (void)
 int
 npth_clock_gettime (struct timespec *ts)
 {
-#if HAVE_CLOCK_GETTIME
+#if defined(CLOCK_REALTIME) && HAVE_CLOCK_GETTIME
   return clock_gettime (CLOCK_REALTIME, ts);
+#elif HAVE_GETTIMEOFDAY
+  {
+    struct timeval tv;
+
+    if (gettimeofday (&tv, NULL))
+      return -1;
+    ts->tv_sec = tv.tv_sec;
+    ts->tv_nsec = tv.tv_usec * 1000;
+    return 0;
+  }
 #else
   /* FIXME: fall back on time() with seconds resolution.  */
 # error clock_gettime not available - please provide a fallback.