]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
Build: Fix --disable-threads breaking the building of shared libs.
authorLasse Collin <lasse.collin@tukaani.org>
Tue, 21 Mar 2023 11:11:49 +0000 (13:11 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Tue, 21 Mar 2023 12:15:14 +0000 (14:15 +0200)
This is broken in the releases 5.2.6 to 5.4.2. A workaround
for these releases is to pass EGREP='grep -E' as an argument
to configure in addition to --disable-threads.

The problem appeared when m4/ax_pthread.m4 was updated in
the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
but this was only executed if POSIX threads were enabled.
Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
omits it as AC_PROG_EGREP has already been required earlier.
Thus, if not using POSIX threads, the shell variable EGREP
would be undefined in the Libtool code in configure.

ax_pthread.m4 is fine. The bug was in configure.ac which called
AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
ensures that all AC_REQUIREs get always run.

Thanks to Frank Busse for reporting the bug.
Fixes: https://github.com/tukaani-project/xz/issues/45
configure.ac

index 764b6b6cdaea20e5b315e96ebcb0cfbbdc5654a0..535141f40f198ffb34ea39d5fe589ba339ede7de 100644 (file)
@@ -559,8 +559,8 @@ AM_PROG_CC_C_O
 AM_PROG_AS
 AC_USE_SYSTEM_EXTENSIONS
 
-case $enable_threads in
-       posix)
+AS_CASE([$enable_threads],
+       [posix], [
                echo
                echo "POSIX threading support:"
                AX_PTHREAD([:]) dnl We don't need the HAVE_PTHREAD macro.
@@ -588,19 +588,19 @@ case $enable_threads in
                AC_CHECK_FUNCS([clock_gettime pthread_condattr_setclock])
                AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include <time.h>]])
                CFLAGS=$OLD_CFLAGS
-               ;;
-       win95)
+       ],
+       [win95], [
                AC_DEFINE([MYTHREAD_WIN95], [1], [Define to 1 when using
                        Windows 95 (and thus XP) compatible threads.
                        This avoids use of features that were added in
                        Windows Vista.])
-               ;;
-       vista)
+       ],
+       [vista], [
                AC_DEFINE([MYTHREAD_VISTA], [1], [Define to 1 when using
                        Windows Vista compatible threads. This uses
                        features that are not available on Windows XP.])
-               ;;
-esac
+       ]
+)
 AM_CONDITIONAL([COND_THREADS], [test "x$enable_threads" != xno])
 
 echo