]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
local: require clock_gettime()
authorMiroslav Lichvar <mlichvar@redhat.com>
Tue, 27 Jan 2026 15:32:28 +0000 (16:32 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Thu, 29 Jan 2026 08:51:27 +0000 (09:51 +0100)
Make clock_gettime() a hard requirement of chrony. It should be
available on all reasonably recent versions of the supported systems.

This enables adoption of the clockid_t type (CLOCK_* identifiers).

configure
local.c

index 4f4d15549d00b9d2ce1975c352fc0ef5082c91cf..47c7eb2142838130c7973552eb93969c9614f7d1 100755 (executable)
--- a/configure
+++ b/configure
@@ -666,18 +666,18 @@ then
 fi
 
 if [ $try_clock_gettime = "1" ]; then
-  if test_code 'clock_gettime()' 'time.h' '' '' '
+  if test_code 'clock_gettime()' 'time.h' '' '' '
     struct timespec ts;
     clock_gettime(CLOCK_REALTIME, &ts);'
   then
-    add_def HAVE_CLOCK_GETTIME
-  else
     if test_code 'clock_gettime() in -lrt' 'time.h' '' '-lrt' '
       struct timespec ts;
       clock_gettime(CLOCK_REALTIME, &ts);'
     then
-      add_def HAVE_CLOCK_GETTIME
       EXTRA_LIBS="$EXTRA_LIBS -lrt"
+    else
+      echo "error: clock_gettime() not found"
+      exit 1
     fi
   fi
 fi
@@ -829,7 +829,6 @@ then
 fi
 
 if [ $feat_refclock = "1" ] && [ $feat_phc = "1" ] && [ $try_phc = "1" ] && \
-  grep '#define HAVE_CLOCK_GETTIME' config.h > /dev/null && \
   test_code '<linux/ptp_clock.h>' 'sys/ioctl.h linux/ptp_clock.h' '' '' \
     'ioctl(1, PTP_CLOCK_GETCAPS + PTP_SYS_OFFSET, 0);'
 then
diff --git a/local.c b/local.c
index 9745f4fb4e0f2dfc3040ad569b25a41458f188ae..be9a6269f32b738e12572b0acf687de1a9a3b063 100644 (file)
--- a/local.c
+++ b/local.c
@@ -109,7 +109,7 @@ static double max_clock_error;
 static int
 get_clock_resolution(void)
 {
-#if defined(HAVE_CLOCK_GETTIME) && !defined(LINUX)
+#ifndef LINUX
   struct timespec res;
 
   if (clock_getres(CLOCK_REALTIME, &res) < 0)
@@ -123,7 +123,7 @@ get_clock_resolution(void)
 
 /* ================================================== */
 
-#if defined(LINUX) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC_RAW)
+#if defined(LINUX) && defined(CLOCK_MONOTONIC_RAW)
 
 static int
 compare_ints(const void *a, const void *b)
@@ -499,17 +499,8 @@ void LCL_RemoveDispersionNotifyHandler(LCL_DispersionNotifyHandler handler, void
 void
 LCL_ReadRawTime(struct timespec *ts)
 {
-#if HAVE_CLOCK_GETTIME
   if (clock_gettime(CLOCK_REALTIME, ts) < 0)
     LOG_FATAL("clock_gettime() failed : %s", strerror(errno));
-#else
-  struct timeval tv;
-
-  if (gettimeofday(&tv, NULL) < 0)
-    LOG_FATAL("gettimeofday() failed : %s", strerror(errno));
-
-  UTI_TimevalToTimespec(&tv, ts);
-#endif
 }
 
 /* ================================================== */