summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2013-01-12 00:19:40 -0500
committerStefano Lattarini <stefano.lattarini@gmail.com>2013-01-12 11:29:34 +0100
commit182626687f2640609f8eb28ad1b04b078342f2c7 (patch)
tree9e16590f02f6efd005207e7be5ece5a37dda188d
parentd353dbc3f01357e9bfce59d1720a8cb2498d12bd (diff)
downloadautomake-182626687f2640609f8eb28ad1b04b078342f2c7.tar.gz
ithreads: use runtime (not configure time) detection of perl threads
I can't imagine the runtime checks being a big runtime penalty, so there shouldn't be a need to do the checks at configure check and hardcode the result in the generated automake. With the current system, it means if you change your perl config (build perl w/threads, build automake, build perl w/out threads), or deploy a compiled automake package on a different system (build had threads, but deployed system does not), you get errors when trying to run automake. So take the logic from configure.ac and move it to the one place where PERL_THREADS is used (lib/Automake/Config.in) and do the version/config checking at runtime. * bootstrap.sh (PERL_THREADS): Delete assignment and use in sed. * configure.ac (am_cv_prog_PERL_ithreads, PERL_THREADS): Delete all code related to these two variables. * lib/Automake/Config.in (perl_threads): Initialize to 0, and only set to 1 if the perl version is at least 5.007_002, and useithreads is in Config. Copyright-paperwork-exempt: yes Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
-rwxr-xr-xbootstrap.sh2
-rw-r--r--configure.ac26
-rw-r--r--lib/Automake/Config.in9
3 files changed, 8 insertions, 29 deletions
diff --git a/bootstrap.sh b/bootstrap.sh
index 0a5a290e2..93bf3fd54 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -35,7 +35,6 @@ export AUTOM4TE # ditto
VERSION=`sed -ne '/AC_INIT/s/^[^[]*\[[^[]*\[\([^]]*\)\].*$/\1/p' configure.ac`
PACKAGE=automake
datadir=.
-PERL_THREADS=0
# This should be automatically updated by the 'update-copyright'
# rule of our Makefile.
RELEASE_YEAR=2013
@@ -83,7 +82,6 @@ dosubst ()
sed -e "s%@APIVERSION@%$APIVERSION%g" \
-e "s%@PACKAGE@%$PACKAGE%g" \
-e "s%@PERL@%$PERL%g" \
- -e "s%@PERL_THREADS@%$PERL_THREADS%g" \
-e "s%@SHELL@%$BOOTSTRAP_SHELL%g" \
-e "s%@VERSION@%$VERSION%g" \
-e "s%@datadir@%$datadir%g" \
diff --git a/configure.ac b/configure.ac
index 6ef2be734..006a08c2d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,32 +86,6 @@ installed, select the one Automake should use using
./configure PERL=/path/to/perl])
}
-# We require ithreads support, and version 5.7.2 for CLONE.
-AC_CACHE_CHECK([whether $PERL supports ithreads], [am_cv_prog_PERL_ithreads],
-[if $PERL -e '
- require 5.007_002;
- use Config;
- if ($Config{useithreads})
- {
- require threads;
- import threads;
- require Thread::Queue;
- import Thread::Queue;
- exit 0;
- }
- exit 1;' >&AS_MESSAGE_LOG_FD 2>&1
-then
- am_cv_prog_PERL_ithreads=yes
-else
- am_cv_prog_PERL_ithreads=no
-fi])
-if test $am_cv_prog_PERL_ithreads = yes; then
- PERL_THREADS=1;
-else
- PERL_THREADS=0;
-fi
-AC_SUBST([PERL_THREADS])
-
# The test suite will skip some tests if tex is absent.
AC_CHECK_PROG([TEX], [tex], [tex])
# Save details about the selected TeX program in config.log.
diff --git a/lib/Automake/Config.in b/lib/Automake/Config.in
index fe6ef9d29..885e74e5d 100644
--- a/lib/Automake/Config.in
+++ b/lib/Automake/Config.in
@@ -33,7 +33,14 @@ our $PACKAGE_BUGREPORT = '@PACKAGE_BUGREPORT@';
our $VERSION = '@VERSION@';
our $RELEASE_YEAR = '@RELEASE_YEAR@';
our $libdir = '@datadir@/@PACKAGE@-@APIVERSION@';
-our $perl_threads = @PERL_THREADS@;
+
+our $perl_threads = 0;
+# We need at least this version for CLONE support.
+if (eval { require 5.007_002; })
+ {
+ use Config;
+ $perl_threads = $Config{useithreads};
+ }
1;