summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJia Tan <jiat0218@gmail.com>2022-12-29 01:10:53 +0800
committerJia Tan <jiat0218@gmail.com>2022-12-30 23:34:31 +0800
commit74dae7d30091e906d6a92a57952dea4354473f9b (patch)
tree128a776f1c62de4504aa5e6448c9ec3fc130d211
parent7339e39dc060df6eda74a2c5b69961befc3d5d24 (diff)
downloadxz-74dae7d30091e906d6a92a57952dea4354473f9b.tar.gz
Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
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.
-rw-r--r--CMakeLists.txt8
-rw-r--r--configure.ac5
-rw-r--r--src/common/mythread.h4
-rw-r--r--src/xz/mytime.c5
4 files changed, 11 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 01c73cd..c4f1059 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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)
diff --git a/configure.ac b/configure.ac
index 7c77215..a16031b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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)
diff --git a/src/common/mythread.h b/src/common/mythread.h
index 4138218..9be90d4 100644
--- a/src/common/mythread.h
+++ b/src/common/mythread.h
@@ -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;
diff --git a/src/xz/mytime.c b/src/xz/mytime.c
index 7044400..a81c88a 100644
--- a/src/xz/mytime.c
+++ b/src/xz/mytime.c
@@ -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.