Author: jkaluza
Date: Mon Apr 28 13:17:53 2014
New Revision: 1590627
URL: http://svn.apache.org/r1590627
Log:
Require threaded Perl when compilling with httpd >= 2.4.0. Remove unused option
MP_NONTHREADED_OK and replace it with MP_NO_THREADS.
This is follow up of r1151822.
Modified:
perl/modperl/branches/httpd24threading/Makefile.PL
perl/modperl/branches/httpd24threading/lib/ModPerl/BuildOptions.pm
Modified: perl/modperl/branches/httpd24threading/Makefile.PL
URL:
http://svn.apache.org/viewvc/perl/modperl/branches/httpd24threading/Makefile.PL?rev=1590627&r1=1590626&r2=1590627&view=diff
==============================================================================
--- perl/modperl/branches/httpd24threading/Makefile.PL (original)
+++ perl/modperl/branches/httpd24threading/Makefile.PL Mon Apr 28 13:17:53 2014
@@ -509,19 +509,44 @@ sub perl_version_check {
$perl_version =~ s/5.00(\d)(?:00(\d))?/"5.$1." . ($2||0)/e;
my $perl_threads = Apache2::Build::PERL_HAS_ITHREADS ? "w/" : "w/o";
my $perl_string = "Using Perl $perl_version $perl_threads ithreads";
- my $mpm = $build->mpm_name();
+ my $httpd_version = $build->httpd_version;
+ my $mpm = "";
+ my $build_threaded = 0;
+
+ # For httpd-2.4, we can't use mpm_is_threaded(), because MPMs are loadable
+ # modules. We therefore treat httpd as a whole project as threaded. It is
+ # still possible to disable threading by using MP_NO_THREADS=1
+ if ($httpd_version lt MIN_HTTPD_24_VERSION) {
+ $build_threaded = $build->mpm_is_threaded();
+ $mpm = $build->mpm_name();
+ }
+ else {
+ if ($build->{MP_NO_THREADS}) {
+ $build_threaded = 0;
+ }
+ else {
+ $build_threaded = 1;
+ }
+ }
# certain mpms require perl 5.8.0+ w/ithreads
- if ($build->mpm_is_threaded()) {
+ if ($build_threaded) {
my @fail;
push @fail, "Perl 5.8 or higher"
unless $] >= 5.008;
push @fail, "Perl built with ithreads (build perl with -Duseithreads)"
unless Apache2::Build::PERL_HAS_ITHREADS();
if (@fail) {
- error "$perl_string and '$mpm' mpm httpd.",
- "Failed requirements:",
- join "", map {" - $_\n"} @fail;
+ if ($httpd_version lt MIN_HTTPD_24_VERSION) {
+ error "$perl_string and '$mpm' mpm httpd.",
+ "Failed requirements:",
+ join "", map {" - $_\n"} @fail;
+ }
+ else {
+ error "$perl_string and httpd-2.4.",
+ "Failed requirements:",
+ join "", map {" - $_\n"} @fail;
+ }
exit 1;
}
}
@@ -531,8 +556,14 @@ sub perl_version_check {
if ($build->should_build_apache && !Apache2::Build::PERL_HAS_ITHREADS)
{
# before 5.8.2, perl_shutdown is incomplete
if ($] < 5.008_002) {
- error "static $mpm mpm requires a threaded ".
- "perl 5.6.1-5.8.1 or any perl 5.8.2+";
+ if ($httpd_version lt MIN_HTTPD_24_VERSION) {
+ error "static $mpm mpm requires a threaded ".
+ "perl 5.6.1-5.8.1 or any perl 5.8.2+";
+ }
+ else {
+ error "httpd-2.4 requires a threaded ".
+ "perl 5.6.1-5.8.1 or any perl 5.8.2+";
+ }
exit 1;
}
}
@@ -553,7 +584,7 @@ sub perl_version_check {
if ($Config{usemultiplicity} xor $Config{useithreads}) {
error "mod_perl does not currently support multiplicity without ".
"ithreads.";
- if ($build->mpm_is_threaded()) {
+ if ($build_threaded) {
error "Please recompile Perl with -Duseithreads and ".
"-Dusemultiplicity";
} else {
Modified: perl/modperl/branches/httpd24threading/lib/ModPerl/BuildOptions.pm
URL:
http://svn.apache.org/viewvc/perl/modperl/branches/httpd24threading/lib/ModPerl/BuildOptions.pm?rev=1590627&r1=1590626&r2=1590627&view=diff
==============================================================================
--- perl/modperl/branches/httpd24threading/lib/ModPerl/BuildOptions.pm
(original)
+++ perl/modperl/branches/httpd24threading/lib/ModPerl/BuildOptions.pm Mon Apr
28 13:17:53 2014
@@ -265,4 +265,4 @@ GENERATE_XS 0 Generate XS code bas
LIBNAME 0 Name of the modperl dso library (default is mod_perl)
COMPAT_1X 0 Compile-time mod_perl 1.0 backcompat (default is on)
APR_LIB 0 Lib used to build APR::* on Win32 (default is aprext)
-NONTHREADED_OK 0 Using a non-threaded perl is okay with httpd >=2.3
+NO_THREADS 0 Build mod_perl without thread support with httpd >= 2.4