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 ***
 

Reply via email to