]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
authorJia Tan <jiat0218@gmail.com>
Wed, 28 Dec 2022 17:10:53 +0000 (01:10 +0800)
committerJia Tan <jiat0218@gmail.com>
Wed, 4 Jan 2023 16:26:35 +0000 (00:26 +0800)
Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
be set to 0 or 1. However, this macro was needed in xz so if xz was not
built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
will only be set if it is 1.

CMakeLists.txt
configure.ac
src/common/mythread.h
src/xz/mytime.c

index 01c73cd5edfcf50d39d5851ce1fb2e0c54aba523..c4f105948789723add31dedff786b6cf52840088 100644 (file)
@@ -154,13 +154,11 @@ if(NOT WIN32 AND NOT DEFINED HAVE_CLOCK_GETTIME)
     endif()
     if(HAVE_CLOCK_GETTIME)
         # Check if CLOCK_MONOTONIC is available for clock_gettime().
-        check_symbol_exists(CLOCK_MONOTONIC time.h HAVE_DECL_CLOCK_MONOTONIC)
+        check_symbol_exists(CLOCK_MONOTONIC time.h HAVE_CLOCK_MONOTONIC)
 
-        # HAVE_DECL_CLOCK_MONOTONIC should always be defined to 0 or 1
-        # when clock_gettime is available.
         add_compile_definitions(
             HAVE_CLOCK_GETTIME
-            HAVE_DECL_CLOCK_MONOTONIC=$<BOOL:"${HAVE_DECL_CLOCK_MONOTONIC}">
+            HAVE_CLOCK_MONOTONIC
         )
     endif()
 endif()
@@ -184,7 +182,7 @@ else()
     add_compile_definitions(MYTHREAD_POSIX)
 
     # Check if pthread_condattr_setclock() exists to use CLOCK_MONOTONIC.
-    if(HAVE_DECL_CLOCK_MONOTONIC)
+    if(HAVE_CLOCK_MONOTONIC)
         list(INSERT CMAKE_REQUIRED_LIBRARIES 0 "${CMAKE_THREAD_LIBS_INIT}")
         check_symbol_exists(pthread_condattr_setclock pthread.h
                             HAVE_PTHREAD_CONDATTR_SETCLOCK)
index 7c77215b591d471ca5d01ce48e1d4e5fce23328b..a16031b565aef303a5180ea96a90febbd7a29c0a 100644 (file)
@@ -638,7 +638,10 @@ case $enable_threads in
                CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
                AC_SEARCH_LIBS([clock_gettime], [rt])
                AC_CHECK_FUNCS([clock_gettime pthread_condattr_setclock])
-               AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include <time.h>]])
+               AC_CHECK_DECL([CLOCK_MONOTONIC], [AC_DEFINE(
+                       [HAVE_CLOCK_MONOTONIC], [1], [Define to 1 if
+                       CLOCK_MONOTONIC is declared in <time.h>])], [],
+                       [[#include <time.h>]])
                CFLAGS=$OLD_CFLAGS
                ;;
        win95)
index 413821836020f4b7bec5a873bab2d24ed71f517b..9be90d4ef1855f0674c8021e1a0b3d0383b2d546 100644 (file)
@@ -219,8 +219,8 @@ static inline int
 mythread_cond_init(mythread_cond *mycond)
 {
 #ifdef HAVE_CLOCK_GETTIME
-       // NOTE: HAVE_DECL_CLOCK_MONOTONIC is always defined to 0 or 1.
-#      if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && HAVE_DECL_CLOCK_MONOTONIC
+#      if defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && \
+               defined(HAVE_CLOCK_MONOTONIC)
        struct timespec ts;
        pthread_condattr_t condattr;
 
index 70444001bdd7b99680fcae9633603e80a95a8448..a81c88af8fcc4bcb1744f53895f9691be1f83742 100644 (file)
@@ -12,7 +12,7 @@
 
 #include "private.h"
 
-#if !(defined(HAVE_CLOCK_GETTIME) && HAVE_DECL_CLOCK_MONOTONIC)
+#if !(defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC))
 #      include <sys/time.h>
 #endif
 
@@ -28,8 +28,7 @@ static uint64_t next_flush;
 static uint64_t
 mytime_now(void)
 {
-       // NOTE: HAVE_DECL_CLOCK_MONOTONIC is always defined to 0 or 1.
-#if defined(HAVE_CLOCK_GETTIME) && HAVE_DECL_CLOCK_MONOTONIC
+#if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC)
        // If CLOCK_MONOTONIC was available at compile time but for some
        // reason isn't at runtime, fallback to CLOCK_REALTIME which
        // according to POSIX is mandatory for all implementations.