diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2023-09-23 03:23:32 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2023-10-22 18:59:45 +0300 |
commit | 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419 (patch) | |
tree | 6fdf4d787382d9eca22ba80d2678ee007801b050 /configure.ac | |
parent | xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64. (diff) | |
download | xz-1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419.tar.xz |
Build: Check for clock_gettime() even if not using POSIX threads.
See the new comment in the code.
This also makes the check for clock_gettime() run with MinGW-w64
with which we don't want to use clock_gettime(). The previous
commit already took care of this situation.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac index 19dbf1d7..6512f480 100644 --- a/configure.ac +++ b/configure.ac @@ -622,21 +622,10 @@ AS_CASE([$enable_threads], AC_DEFINE([MYTHREAD_POSIX], [1], [Define to 1 when using POSIX threads (pthreads).]) - # These are nice to have but not mandatory. - # - # FIXME: xz uses clock_gettime if it is available and can do - # it even when threading is disabled. Moving this outside - # of pthread detection may be undesirable because then - # liblzma may get linked against librt even when librt isn't - # needed by liblzma. + # This is nice to have but not mandatory. OLD_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - AC_SEARCH_LIBS([clock_gettime], [rt]) - AC_CHECK_FUNCS([clock_gettime pthread_condattr_setclock]) - 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>]]) + AC_CHECK_FUNCS([pthread_condattr_setclock]) CFLAGS=$OLD_CFLAGS ], [win95], [ @@ -916,6 +905,22 @@ fi # Gnulib replacements as needed gl_GETOPT +# If clock_gettime() is available, liblzma with pthreads may use it, and +# xz may use it even when threading support is disabled. In XZ Utils 5.4.x +# and older, configure checked for clock_gettime() only when using pthreads. +# This way non-threaded builds of liblzma didn't get a useless dependency on +# librt which further had a dependency on libpthread. Avoiding these was +# useful when a small build was needed, for example, for initramfs use. +# +# The above reasoning is thoroughly obsolete: On GNU/Linux, librt hasn't +# been needed for clock_gettime() since glibc 2.17 (2012-12-25). +# Solaris 10 needs librt but Solaris 11 doesn't anymore. +AC_SEARCH_LIBS([clock_gettime], [rt]) +AC_CHECK_FUNCS([clock_gettime]) +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>]]) + # Find the best function to set timestamps. AC_CHECK_FUNCS([futimens futimes futimesat utimes _futime utime], [break]) |