You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by to...@apache.org on 2012/02/07 10:41:54 UTC
svn commit: r1241394 - in /perl/modperl/branches/threading: ./ lib/Apache2/
lib/ModPerl/ src/modules/perl/ t/response/TestDirective/
Author: torsten
Date: Tue Feb 7 09:41:53 2012
New Revision: 1241394
URL: http://svn.apache.org/viewvc?rev=1241394&view=rev
Log:
Merged revisions 1125476,1125479,1145161,1213838,1213841,1213902,1221285,1221359,1222775 via svnmerge from
https://svn.eu.apache.org/repos/asf/perl/modperl/trunk
........
r1125476 | torsten | 2011-05-20 19:22:24 +0200 (Fri, 20 May 2011) | 1 line
adopt the Perl_sv_dup() changes in Perl 5.14
........
r1125479 | torsten | 2011-05-20 19:32:03 +0200 (Fri, 20 May 2011) | 1 line
again, forgot about Changes in commit 1125476
........
r1145161 | torsten | 2011-07-11 15:07:46 +0200 (Mon, 11 Jul 2011) | 1 line
move <LimitExcept> into a <Directory />. In httpd-2.3 it is not allowed in server config context
........
r1213838 | gozer | 2011-12-13 19:33:18 +0100 (Tue, 13 Dec 2011) | 3 lines
Avoid -Wall warning when mg_flags isn't used.
........
r1213841 | gozer | 2011-12-13 19:34:16 +0100 (Tue, 13 Dec 2011) | 5 lines
When generating XS code, include var = var; declarations on the arguments,
since we don't know if they will be used, and we want to keep -Wall builds
succeeding.
........
r1213902 | gozer | 2011-12-13 21:04:15 +0100 (Tue, 13 Dec 2011) | 3 lines
Silence a compiler warning when MP_TRACE is not enabled
........
r1221285 | gozer | 2011-12-20 15:40:21 +0100 (Tue, 20 Dec 2011) | 6 lines
Adjust for latest ExtUtils::MakeMaker internal change. We must call init_tools when
it is available.
Reference: https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/f4904b4ce499b7f0c420efae69f44e19fe7dd12f
........
r1221359 | gozer | 2011-12-20 18:22:31 +0100 (Tue, 20 Dec 2011) | 7 lines
Apache 2.4 and onwards doesn't require linking the MPM module directly in
the httpd binary anymore. APXS lost the MPM_NAME query, so we can't assume
a given MPM anymore. Introduce a fake MPM 'dynamic' to represent this.
Borrowed from the 2.4 branch
........
r1222775 | gozer | 2011-12-23 19:20:27 +0100 (Fri, 23 Dec 2011) | 3 lines
Discover apr-2-config from Apache 2.4 onwards.
........
Modified:
perl/modperl/branches/threading/ (props changed)
perl/modperl/branches/threading/Changes
perl/modperl/branches/threading/lib/Apache2/Build.pm
perl/modperl/branches/threading/lib/ModPerl/WrapXS.pm
perl/modperl/branches/threading/src/modules/perl/mod_perl.c
perl/modperl/branches/threading/src/modules/perl/modperl_perl_global.c
perl/modperl/branches/threading/src/modules/perl/modperl_svptr_table.c
perl/modperl/branches/threading/t/response/TestDirective/cmdparms.pm
Propchange: perl/modperl/branches/threading/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb 7 09:41:53 2012
@@ -1 +1 @@
-/perl/modperl/trunk:594682-672484,672819-681118,693357,700369,732889-736218,751909-752425,757553-774171,807116,807332-807649,907778-932879,933373-933563,935519,936643,940287,957309-983073,985740,987933-1023553,1029211-1052232,1062311-1062448,1066644-1074122,1076733,1083541,1089349-1096565,1124132
+/perl/modperl/trunk:594682-672484,672819-681118,693357,700369,732889-736218,751909-752425,757553-774171,807116,807332-807649,907778-932879,933373-933563,935519,936643,940287,957309-983073,985740,987933-1023553,1029211-1052232,1062311-1062448,1066644-1074122,1076733,1083541,1089349-1096565,1124132,1125476-1145161,1213838-1222775
Propchange: perl/modperl/branches/threading/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Feb 7 09:41:53 2012
@@ -1 +1 @@
-/perl/modperl/trunk:1-712967,712969-1125405
+/perl/modperl/trunk:1-712967,712969-1241385
Modified: perl/modperl/branches/threading/Changes
URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/Changes?rev=1241394&r1=1241393&r2=1241394&view=diff
==============================================================================
--- perl/modperl/branches/threading/Changes (original)
+++ perl/modperl/branches/threading/Changes Tue Feb 7 09:41:53 2012
@@ -31,6 +31,17 @@ Expose modperl_interp_t via ModPerl::Int
=item 2.0.6-dev
+Discover apr-2-config from Apache 2.4 onwards. [Gozer]
+
+Apache 2.4 and onwards doesn't require linking the MPM module directly in
+the httpd binary anymore. APXS lost the MPM_NAME query, so we can't assume
+a given MPM anymore. Introduce a fake MPM 'dynamic' to represent this.
+[Torsten Foertsch, Gozer]
+
+Perl 5.14 brought a few changes in Perl_sv_dup() that made a threaded apache
+segfault while cloning interpreters.
+[Torsten Foertsch]
+
PerlIOApache_flush() and mpxs_Apache2__RequestRec_rflush() now no longer throw
exceptions when modperl_wbucket_flush() fails if the failure was just a reset
connection or an aborted connection. The failure is simply logged to the error
Modified: perl/modperl/branches/threading/lib/Apache2/Build.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/lib/Apache2/Build.pm?rev=1241394&r1=1241393&r2=1241394&view=diff
==============================================================================
--- perl/modperl/branches/threading/lib/Apache2/Build.pm (original)
+++ perl/modperl/branches/threading/lib/Apache2/Build.pm Tue Feb 7 09:41:53 2012
@@ -277,7 +277,8 @@ sub caller_package {
}
my %threaded_mpms = map { $_ => 1 }
- qw(worker winnt beos mpmt_os2 netware leader perchild threadpool);
+ qw(worker winnt beos mpmt_os2 netware leader perchild threadpool
+ dynamic);
sub mpm_is_threaded {
my $self = shift;
my $mpm_name = $self->mpm_name();
@@ -292,7 +293,15 @@ sub mpm_name {
# XXX: hopefully apxs will work on win32 one day
return $self->{mpm_name} = 'winnt' if WIN32;
- my $mpm_name = $self->apxs('-q' => 'MPM_NAME');
+ my $mpm_name;
+
+ # httpd >= 2.3
+ if ($self->httpd_version_as_int =~ m/^2[3-9]\d+/) {
+ $mpm_name = 'dynamic';
+ }
+ else {
+ $mpm_name = $self->apxs('-q' => 'MPM_NAME');
+ }
# building against the httpd source dir
unless (($mpm_name and $self->httpd_is_source_tree)) {
@@ -1145,7 +1154,18 @@ sub apr_bindir {
sub apr_generation {
my ($self) = @_;
- return $self->httpd_version_as_int =~ m/2[1-9]\d+/ ? 1 : 0;
+
+ my $httpd_v = $self->httpd_version_as_int;
+
+ if ($httpd_v =~ m/2[4-9]\d+/) {
+ return 2;
+ }
+ elsif ($httpd_v =~ m/2[1-3]\d+/) {
+ return 1;
+ }
+ else {
+ return;
+ }
}
# returns an array of apr/apu linking flags (--link-ld --libs) if found
@@ -1205,7 +1225,8 @@ sub apru_config_path {
$self->{$key} = $self->{$mp_key};
}
- my $config = $self->apr_generation ? "$what-1-config" : "$what-config";
+ my $apr_generation = $self->apr_generation;
+ my $config = $apr_generation ? "$what-${apr_generation}-config" : "$what-config";
if (!$self->{$key}) {
my @tries = ();
@@ -1573,8 +1594,11 @@ sub make_tools {
require ExtUtils::MakeMaker;
my $mm = bless { @mm_init_vars }, 'MM';
- $mm->init_main;
- $mm->init_others;
+
+ # Fake initialize MakeMaker
+ foreach my $m (qw(init_main init_others init_tools)) {
+ $mm->$m() if $mm->can($m);
+ }
for (qw(rm_f mv ld ar cp test_f)) {
my $val = $mm->{"\U$_"};
Modified: perl/modperl/branches/threading/lib/ModPerl/WrapXS.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/lib/ModPerl/WrapXS.pm?rev=1241394&r1=1241393&r2=1241394&view=diff
==============================================================================
--- perl/modperl/branches/threading/lib/ModPerl/WrapXS.pm (original)
+++ perl/modperl/branches/threading/lib/ModPerl/WrapXS.pm Tue Feb 7 09:41:53 2012
@@ -156,9 +156,16 @@ EOF
my $retval = $return_type eq 'void' ?
["", ""] : ["RETVAL = ", "OUTPUT:\n RETVAL\n"];
-
+
+ my $avoid_warning = "";
+ if (@$args and not $passthru) {
+ $avoid_warning = " /* avoiding -Wall warnings */\n";
+ $avoid_warning .= join "\n",
+ (map " $_->{name} = $_->{name};", @$args), "";
+ }
$code .= <<EOF;
CODE:
+$avoid_warning
$retval->[0]$dispatch($thx$parms);
$retval->[1]
Modified: perl/modperl/branches/threading/src/modules/perl/mod_perl.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/mod_perl.c?rev=1241394&r1=1241393&r2=1241394&view=diff
==============================================================================
--- perl/modperl/branches/threading/src/modules/perl/mod_perl.c (original)
+++ perl/modperl/branches/threading/src/modules/perl/mod_perl.c Tue Feb 7 09:41:53 2012
@@ -440,13 +440,13 @@ int modperl_init_vhost(server_rec *s, ap
void modperl_init(server_rec *base_server, apr_pool_t *p)
{
server_rec *s;
- modperl_config_srv_t *base_scfg;
PerlInterpreter *base_perl;
-
- base_scfg = modperl_config_srv_get(base_server);
+#ifdef MP_TRACE
+ modperl_config_srv_t *base_scfg = modperl_config_srv_get(base_server);
MP_TRACE_d_do(MpSrv_dump_flags(base_scfg,
base_server->server_hostname));
+#endif /* MP_TRACE */
#ifndef USE_ITHREADS
if (modperl_threaded_mpm()) {
Modified: perl/modperl/branches/threading/src/modules/perl/modperl_perl_global.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/modperl_perl_global.c?rev=1241394&r1=1241393&r2=1241394&view=diff
==============================================================================
--- perl/modperl/branches/threading/src/modules/perl/modperl_perl_global.c (original)
+++ perl/modperl/branches/threading/src/modules/perl/modperl_perl_global.c Tue Feb 7 09:41:53 2012
@@ -338,6 +338,9 @@ modperl_perl_global_gvhv_restore(pTHX_ m
*/
MP_magical_untie(gvhv->tmphv, mg_flags);
SvREFCNT_dec(gvhv->tmphv);
+
+ /* avoiding -Wall warning */
+ mg_flags = mg_flags;
}
static void
Modified: perl/modperl/branches/threading/src/modules/perl/modperl_svptr_table.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/src/modules/perl/modperl_svptr_table.c?rev=1241394&r1=1241393&r2=1241394&view=diff
==============================================================================
--- perl/modperl/branches/threading/src/modules/perl/modperl_svptr_table.c (original)
+++ perl/modperl/branches/threading/src/modules/perl/modperl_svptr_table.c Tue Feb 7 09:41:53 2012
@@ -30,7 +30,7 @@
#ifdef USE_ITHREADS
#if MP_PERL_BRANCH(5, 6)
-# define my_sv_dup(s, p) sv_dup(s)
+# define my_sv_dup(s, p) SvREFCNT_inc(sv_dup(s))
typedef struct {
AV *stashes;
@@ -39,7 +39,11 @@ typedef struct {
} CLONE_PARAMS;
#else
-# define my_sv_dup(s, p) sv_dup(s, p)
+# ifdef sv_dup_inc
+# define my_sv_dup(s, p) sv_dup_inc(s, p)
+# else
+# define my_sv_dup(s, p) SvREFCNT_inc(sv_dup(s, p))
+# endif
#endif
/*
@@ -89,8 +93,7 @@ PTR_TBL_t *modperl_svptr_table_clone(pTH
/* key is just a pointer we do not modify, no need to copy */
dst_ent->oldval = src_ent->oldval;
- dst_ent->newval =
- SvREFCNT_inc(my_sv_dup((SV*)src_ent->newval, &parms));
+ dst_ent->newval = my_sv_dup((SV*)src_ent->newval, &parms);
}
}
Modified: perl/modperl/branches/threading/t/response/TestDirective/cmdparms.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/threading/t/response/TestDirective/cmdparms.pm?rev=1241394&r1=1241393&r2=1241394&view=diff
==============================================================================
--- perl/modperl/branches/threading/t/response/TestDirective/cmdparms.pm (original)
+++ perl/modperl/branches/threading/t/response/TestDirective/cmdparms.pm Tue Feb 7 09:41:53 2012
@@ -135,6 +135,8 @@ TestCmdParms "Vhost"
TestCmdParms "Location"
-<LimitExcept GET>
- TestCmdParms "Limit"
-</LimitExcept>
+<Directory />
+ <LimitExcept GET>
+ TestCmdParms "Limit"
+ </LimitExcept>
+</Directory>