Author: gozer Date: Wed Dec 22 15:02:28 2004 New Revision: 123146 URL: http://svn.apache.org/viewcvs?view=rev&rev=123146 Log: Static build with a Perl without ithreads and a non-threaded MPM would segfault on startup. Caused by a bug in perl's perl_shutdown() code. Fixed in Perl 5.8.2, so it's now a build requirement
Modified: perl/modperl/trunk/Changes perl/modperl/trunk/Makefile.PL perl/modperl/trunk/README Modified: perl/modperl/trunk/Changes Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?view=diff&rev=123146&p1=perl/modperl/trunk/Changes&r1=123145&p2=perl/modperl/trunk/Changes&r2=123146 ============================================================================== --- perl/modperl/trunk/Changes (original) +++ perl/modperl/trunk/Changes Wed Dec 22 15:02:28 2004 @@ -12,6 +12,10 @@ =item 1.99_19-dev +Static build with a Perl without ithreads and a non-threaded MPM +would segfault on startup. Caused by a bug in perl's perl_shutdown() +code. Fixed in Perl 5.8.2, so it's now a build requirement [Gozer] + replace the added in 1.99_17 code on resetting/restoring PL_tainted, with explicit reset before and after each each callback. This solves a complicated tainting issues caused when perl exception object is Modified: perl/modperl/trunk/Makefile.PL Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/Makefile.PL?view=diff&rev=123146&p1=perl/modperl/trunk/Makefile.PL&r1=123145&p2=perl/modperl/trunk/Makefile.PL&r2=123146 ============================================================================== --- perl/modperl/trunk/Makefile.PL (original) +++ perl/modperl/trunk/Makefile.PL Wed Dec 22 15:02:28 2004 @@ -489,10 +489,10 @@ $perl_version =~ s/5.00(\d)(?:00(\d))?/"5.$1." . ($2||0)/e; my $perl_threads = Apache::Build::PERL_HAS_ITHREADS ? "w/" : "w/o"; my $perl_string = "Using Perl $perl_version $perl_threads ithreads"; + my $mpm = $build->mpm_name(); # certain mpms require perl 5.8.0+ w/ithreads if ($build->mpm_is_threaded()) { - my $mpm = $build->mpm_name(); my @fail; push @fail, "Perl 5.8 or higher" unless $] >= 5.008; @@ -503,6 +503,18 @@ "Failed requirements:", join "", map {" - $_\n"} @fail; exit 1; + } + } + else { + # before 5.8.2, perl_shutdown is incomplete (in the case of ithreads + # each PerlInterpreter * gets tossed so it works) + if ($build->should_build_apache && !Apache::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+"; + exit 1; + } } } Modified: perl/modperl/trunk/README Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/README?view=diff&rev=123146&p1=perl/modperl/trunk/README&r1=123145&p2=perl/modperl/trunk/README&r2=123146 ============================================================================== --- perl/modperl/trunk/README (original) +++ perl/modperl/trunk/README Wed Dec 22 15:02:28 2004 @@ -11,10 +11,22 @@ http://perl.apache.org/download/source.html#Development_mod_perl_2_0_Source_Distribution Perl: - Perl version 5.6.1 or higher is required. + Dynamic mod_perl (DSO): - Perl version 5.8.0 or higher is required for threaded MPMs (worker, - winnt, etc.). + + prefork mpm: + - Perl version 5.6.1 or higher + + + non-prefork mpm: + - Perl with ithreads support version 5.8.0 or higher + + Static mod_perl: + + + prefork mpm: + - Perl with ithreads support version 5.6.1 or higher + - Perl without ithreads support version 5.8.2 or higher + + + non-prefork mpm: + - Perl with ithreads support version 5.8.0 or higher *** Status ***