summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2023-03-21 13:11:49 +0200
committerLasse Collin <lasse.collin@tukaani.org>2023-03-21 13:11:49 +0200
commit5a5bd7f871818029d5ccbe189f087f591258c294 (patch)
tree7041ec53d180e87417c7df125d3e42224cbb01e0
parentdfe1710784c0a3c3a90c17b80c9e1fe19b5fce06 (diff)
downloadxz-5a5bd7f871818029d5ccbe189f087f591258c294.tar.gz
Build: Fix --disable-threads breaking the building of shared libs.
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
-rw-r--r--configure.ac16
1 files changed, 8 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac
index d8811b9..e3314a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -611,8 +611,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.
@@ -643,19 +643,19 @@ case $enable_threads in
`CLOCK_MONOTONIC' is declared in <time.h>.])], [],
[[#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