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 jk...@apache.org on 2013/02/20 08:54:52 UTC

svn commit: r1448022 [1/2] - in /perl/modperl/branches/httpd24: ./ lib/ lib/Apache2/ lib/ModPerl/ src/modules/perl/ t/conf/ t/lib/TestAPRlib/ t/response/TestDirective/ xs/ xs/APR/Brigade/ xs/APR/Bucket/ xs/APR/BucketAlloc/ xs/APR/Error/ xs/APR/Finfo/ x...

Author: jkaluza
Date: Wed Feb 20 07:54:50 2013
New Revision: 1448022

URL: http://svn.apache.org/r1448022
Log:
Merged revisions 1213838,1213841,1213902,1221285,1221359,1222775,1241435,1241873,1243923,1244184,1245946,1290839,1291667,1299429,1299669,1301966,1302389,1302431,1302463,1311623,1311963,1328477,1328479,1330023,1330345,1330548,1344224,1346710,1346712,1346720,1362399,1362409,1362412,1410264,1410291,1410293,1410295,1410298-1410299,1410314,1410316,1410327,1410329,1410343,1410345,1410400,1410407,1410425,1410427,1419582 via svnmerge from 
https://svn.apache.org/repos/asf/perl/modperl/trunk

........
  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.
........
  r1241435 | torsten | 2012-02-07 13:00:45 +0100 (Tue, 07 Feb 2012) | 3 lines
  
  Fix a small bug in a debugging message in modperl_module.c. It tried to
  print a modperl_mgv_t* as %s.
........
  r1241873 | torsten | 2012-02-08 12:46:27 +0100 (Wed, 08 Feb 2012) | 1 line
  
  reverting change 1145161
........
  r1243923 | stevehay | 2012-02-14 15:04:05 +0100 (Tue, 14 Feb 2012) | 2 lines
  
  Correct the initialization of the build config in ModPerl::MM, simply borrowing the style of ModPerl::BuildMM to do so.
........
  r1244184 | torsten | 2012-02-14 20:29:11 +0100 (Tue, 14 Feb 2012) | 12 lines
  
  Fix 2 SV REFCNT bugs:
  
  - modperl_perl_core_global_init(), the aliasing GV references the aliased
    CV. Thus, it should increment the REFCNT.
  - new_constsub() in modperl_const.c, same story.
  
  The bug has been there for years. Only starting with perl 5.14 it became
  visible by messages like this in the error_log:
  
    Attempt to free unreferenced scalar: SV 0x7fc218, 
        Perl interpreter: 0x7cfdb0 during global destruction.
........
  r1245946 | torsten | 2012-02-18 16:38:49 +0100 (Sat, 18 Feb 2012) | 1 line
  
  avoid hard-wired $(MAKE) options
........
  r1290839 | torsten | 2012-02-18 19:31:38 +0100 (Sat, 18 Feb 2012) | 1 line
  
  pass MP_APXS and MP_AP_PREFIX to submodule Makefile.PLs as environment variables
........
  r1291667 | stevehay | 2012-02-21 09:59:19 +0100 (Tue, 21 Feb 2012) | 3 lines
  
  Ensure that MP_APXS is set when building on Win32 with MP_AP_PREFIX,
  otherwise the bundled Reload and SizeLimit builds will fail to find a
  properly configured Test environment.
........
  r1299429 | torsten | 2012-03-11 20:09:47 +0100 (Sun, 11 Mar 2012) | 4 lines
  
  Fix a race condition in our tipool management.
  See http://www.gossamer-threads.com/lists/modperl/dev/104026
  Patch submitted by: SalusaSecondus <sa...@nationstates.net>
........
  r1299669 | torsten | 2012-03-12 14:27:30 +0100 (Mon, 12 Mar 2012) | 1 line
  
  Do not stringify $@ upon exception propagation.
........
  r1301966 | torsten | 2012-03-17 18:25:01 +0100 (Sat, 17 Mar 2012) | 1 line
  
  fix a few false positive warnings when compiled with -Werror=format-security (reported by Niko Tyni)
........
  r1302389 | torsten | 2012-03-19 13:03:52 +0100 (Mon, 19 Mar 2012) | 7 lines
  
  Pool cleanup functions must not longjmp. Catch these exceptions and turn
  them into warnings.
  
  Affected methods:
    APR::Pool->cleanup_register
    Apache2::ServerUtil->server_shutdown_cleanup_register
........
  r1302431 | torsten | 2012-03-19 14:47:18 +0100 (Mon, 19 Mar 2012) | 2 lines
  
  Adopt modperl_pcw.c changes from httpd24 branch.
........
  r1302463 | torsten | 2012-03-19 15:13:26 +0100 (Mon, 19 Mar 2012) | 1 line
  
  add another pool cleanup exception test
........
  r1311623 | stevehay | 2012-04-10 10:03:21 +0200 (Tue, 10 Apr 2012) | 1 line
  
  Move code after declarations to keep MSVC++ compiler happy.
........
  r1311963 | phred | 2012-04-10 22:05:01 +0200 (Tue, 10 Apr 2012) | 1 line
  
  attribute rc4 changes
........
  r1328477 | aprime | 2012-04-20 20:47:05 +0200 (Fri, 20 Apr 2012) | 3 lines
  
  add ifdef's for MUTABLE_CV usage to preserve perl 5.8.5 compatibility
........
  r1328479 | aprime | 2012-04-20 21:07:44 +0200 (Fri, 20 Apr 2012) | 2 lines
  
  Add changes entry
........
  r1330023 | phred | 2012-04-24 23:31:35 +0200 (Tue, 24 Apr 2012) | 1 line
  
  Releasing 2.0.6
........
  r1330345 | phred | 2012-04-25 17:30:13 +0200 (Wed, 25 Apr 2012) | 1 line
  
  Releasing 2.0.6
........
  r1330548 | phred | 2012-04-25 22:42:13 +0200 (Wed, 25 Apr 2012) | 1 line
  
  start 2.0.7-dev cycle
........
  r1344224 | stevehay | 2012-05-30 14:24:43 +0200 (Wed, 30 May 2012) | 2 lines
  
  Apply patch from rt.cpan.org #77129 to fix breakage caused by removal of PL_uid et al from perl 5.16.0.
........
  r1346710 | phred | 2012-06-06 04:16:19 +0200 (Wed, 06 Jun 2012) | 2 lines
  
  Yep, I think we're stable by now ;)
........
  r1346712 | phred | 2012-06-06 04:19:11 +0200 (Wed, 06 Jun 2012) | 1 line
  
  Releasing 2.0.7
........
  r1346720 | phred | 2012-06-06 04:44:23 +0200 (Wed, 06 Jun 2012) | 1 line
  
  start 2.0.8-dev cycle
........
  r1362399 | stevehay | 2012-07-17 10:14:58 +0200 (Tue, 17 Jul 2012) | 4 lines
  
  Remove all uses of deprecated symbols no longer used by core perl and now only defined when PERL_CORE is not defined for backwards compatibility with CPAN extensions still making use of them:
  MEMBER_TO_FPTR, New, NEWSV, Newz, Null, Nullav, Nullch, Nullcv, Nullfp, Nullgv, Nullhv, Nullsv, PL_dirty, PL_na.
  
  We actually (and arguably, wrongly) define PERL_CORE for an optimization in certain cases (but not when large files support is enabled, hence this doesn't happen often) and therefore don't get the definitions of these legacy symbols in that case. This commit fixes that, so that mod_perl can once again be built without large files support, but ideally our usage of PERL_CORE should be removed anyway.
........
  r1362409 | stevehay | 2012-07-17 10:43:28 +0200 (Tue, 17 Jul 2012) | 1 line
  
  Fix commit 1362399: PL_phase/PERL_PHASE_DESTRUCT is only available in newer perls, so restore use of PL_dirty for older perls (where it was always available, regardless of whether PERL_CORE was defined).
........
  r1362412 | stevehay | 2012-07-17 10:57:34 +0200 (Tue, 17 Jul 2012) | 1 line
  
  Update Changes file for commits 1362399 and 1362409.
........
  r1410264 | jorton | 2012-11-16 10:28:51 +0100 (Fri, 16 Nov 2012) | 4 lines
  
  * src/modules/perl/modperl_interp.c (modperl_interp_select): Fix for httpd 2.4.
  
  Submitted by: Jan Kaluza <jkaluza redhat.com>, jorton
........
  r1410291 | jorton | 2012-11-16 11:44:55 +0100 (Fri, 16 Nov 2012) | 6 lines
  
  * src/modules/perl/modperl_apache_compat.h: Fix definition of
    MP_HTTPD_OVERRIDE_OPTS_DEFAULT for 2.4.
  
  Obtained from: branches/httpd24
  Submitted by: torsten
........
  r1410293 | jorton | 2012-11-16 11:46:24 +0100 (Fri, 16 Nov 2012) | 2 lines
  
  * src/modules/perl/modperl_apache_compat.h: Fix version test.
........
  r1410295 | jorton | 2012-11-16 11:49:00 +0100 (Fri, 16 Nov 2012) | 4 lines
  
  * src/modules/perl/modperl_apache_includes.h: Use 2.4 logging API.
  
  Submitted by: Stefan Fritsch <sf sfritsch.de>, jorton
........
  r1410298 | jorton | 2012-11-16 11:52:40 +0100 (Fri, 16 Nov 2012) | 8 lines
  
  * src/modules/perl/modperl_apache_compat.h: Add mp_add_loaded_module
    wrapper function.
  
  * src/modules/perl/modperl_module.c (modperl_module_add): Use it.
  
  Obtained from: branches/httpd24
  Submitted by: torsten
........
  r1410299 | jorton | 2012-11-16 11:54:59 +0100 (Fri, 16 Nov 2012) | 2 lines
  
  Revert change accidentally included in r1410298.
........
  r1410314 | jorton | 2012-11-16 12:53:32 +0100 (Fri, 16 Nov 2012) | 4 lines
  
  Fix OPT_INCNOEXEC/OPT_INC_WITH_EXEC handling.
  
  Obtained from: branches/httpd24
........
  r1410316 | jorton | 2012-11-16 13:00:57 +0100 (Fri, 16 Nov 2012) | 5 lines
  
  * src/modules/perl/modperl_config.c (svav_getstr): Adjust for 2.4 API.
  
  Obtained from: branches/httpd24
  Submitted by: torsten
........
  r1410327 | jorton | 2012-11-16 14:06:50 +0100 (Fri, 16 Nov 2012) | 5 lines
  
  CScan gets rather confused if cpp's line number markers appear in the middle
  of a function declaration
  
  Submitted by: sf
........
  r1410329 | jorton | 2012-11-16 14:08:05 +0100 (Fri, 16 Nov 2012) | 4 lines
  
  Ignore more exports from 2.4/trunk which break "make source_scan".
  
  Submitted by: sf
........
  r1410343 | jorton | 2012-11-16 14:51:25 +0100 (Fri, 16 Nov 2012) | 5 lines
  
  * lib/Apache2/ParseSource.pm (include_dirs): Pick up APR include dir
    iff different to httpd include dir.
  
  Submitted by: Jan Kaluza <jkaluza redhat.com>, jorton
........
  r1410345 | jorton | 2012-11-16 15:04:59 +0100 (Fri, 16 Nov 2012) | 5 lines
  
  * src/modules/perl/modperl_apr_includes.h: Pick up new APR-util error
    codes.
  
  Submitted by: Jan Kaluza <jkaluza redhat.com>, jorton
........
  r1410400 | jorton | 2012-11-16 16:35:54 +0100 (Fri, 16 Nov 2012) | 6 lines
  
  * xs/Apache2/Log/Apache2__Log.h,
    src/modules/perl/modperl_apache_compat.h: Adapt logging for 2.4 API.
  
  Obtained from: branches/httpd24
  Submitted by: torsten
........
  r1410407 | jorton | 2012-11-16 16:44:08 +0100 (Fri, 16 Nov 2012) | 4 lines
  
  * lib/ModPerl/Code.pm: Add another constant for 2.4.
  
  Submitted by: sf
........
  r1410425 | jorton | 2012-11-16 17:09:40 +0100 (Fri, 16 Nov 2012) | 2 lines
  
  * lib/Apache2/ParseSource.pm: Pick up PROXYREQ_ constants.
........
  r1410427 | jorton | 2012-11-16 17:14:47 +0100 (Fri, 16 Nov 2012) | 5 lines
  
  Fix use of unixd_conifg for 2.4.
  
  Obtained from: branches/httpd24
  Submitted by: torsten
........
  r1419582 | jorton | 2012-12-10 18:01:24 +0100 (Mon, 10 Dec 2012) | 4 lines
  
  * lib/ModPerl/TypeMap.pm (typedefs_code, sv_convert_code):
    Produce output in sorted order for ease of diff across
    invocations.
........

Modified:
    perl/modperl/branches/httpd24/   (props changed)
    perl/modperl/branches/httpd24/Changes
    perl/modperl/branches/httpd24/Makefile.PL
    perl/modperl/branches/httpd24/README
    perl/modperl/branches/httpd24/RELEASE
    perl/modperl/branches/httpd24/STATUS
    perl/modperl/branches/httpd24/lib/Apache2/Build.pm
    perl/modperl/branches/httpd24/lib/Apache2/ParseSource.pm
    perl/modperl/branches/httpd24/lib/ModPerl/CScan.pm
    perl/modperl/branches/httpd24/lib/ModPerl/Code.pm
    perl/modperl/branches/httpd24/lib/ModPerl/MM.pm
    perl/modperl/branches/httpd24/lib/ModPerl/TypeMap.pm
    perl/modperl/branches/httpd24/lib/ModPerl/WrapXS.pm
    perl/modperl/branches/httpd24/lib/mod_perl2.pm
    perl/modperl/branches/httpd24/src/modules/perl/mod_perl.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_compat.h
    perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_includes.h
    perl/modperl/branches/httpd24/src/modules/perl/modperl_apr_includes.h
    perl/modperl/branches/httpd24/src/modules/perl/modperl_callback.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_common_util.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_const.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_env.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_env.h
    perl/modperl/branches/httpd24/src/modules/perl/modperl_error.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_filter.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_handler.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_interp.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_io.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_io_apache.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_mgv.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_module.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_perl.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_global.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_pp.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_svptr_table.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_tipool.c
    perl/modperl/branches/httpd24/src/modules/perl/modperl_util.c
    perl/modperl/branches/httpd24/t/conf/post_config_startup.pl
    perl/modperl/branches/httpd24/t/lib/TestAPRlib/pool.pm
    perl/modperl/branches/httpd24/t/response/TestDirective/cmdparms.pm
    perl/modperl/branches/httpd24/xs/APR/Brigade/APR__Brigade.h
    perl/modperl/branches/httpd24/xs/APR/Bucket/APR__Bucket.h
    perl/modperl/branches/httpd24/xs/APR/BucketAlloc/APR__BucketAlloc.h
    perl/modperl/branches/httpd24/xs/APR/Error/Error_pm
    perl/modperl/branches/httpd24/xs/APR/Finfo/APR__Finfo.h
    perl/modperl/branches/httpd24/xs/APR/IpSubnet/APR__IpSubnet.h
    perl/modperl/branches/httpd24/xs/APR/PerlIO/modperl_apr_perlio.c
    perl/modperl/branches/httpd24/xs/APR/Pool/APR__Pool.h
    perl/modperl/branches/httpd24/xs/APR/Table/APR__Table.h
    perl/modperl/branches/httpd24/xs/APR/ThreadMutex/APR__ThreadMutex.h
    perl/modperl/branches/httpd24/xs/APR/ThreadRWLock/APR__ThreadRWLock.h
    perl/modperl/branches/httpd24/xs/APR/URI/APR__URI.h
    perl/modperl/branches/httpd24/xs/Apache2/Directive/Apache2__Directive.h
    perl/modperl/branches/httpd24/xs/Apache2/Filter/Apache2__Filter.h
    perl/modperl/branches/httpd24/xs/Apache2/Log/Apache2__Log.h
    perl/modperl/branches/httpd24/xs/Apache2/RequestIO/Apache2__RequestIO.h
    perl/modperl/branches/httpd24/xs/Apache2/RequestUtil/Apache2__RequestUtil.h
    perl/modperl/branches/httpd24/xs/Apache2/ServerUtil/Apache2__ServerUtil.h
    perl/modperl/branches/httpd24/xs/Apache2/SubProcess/Apache2__SubProcess.h
    perl/modperl/branches/httpd24/xs/maps/apr_functions.map
    perl/modperl/branches/httpd24/xs/maps/modperl_functions.map
    perl/modperl/branches/httpd24/xs/modperl_xs_util.h

Propchange: perl/modperl/branches/httpd24/
------------------------------------------------------------------------------
--- svn:externals (original)
+++ svn:externals Wed Feb 20 07:54:50 2013
@@ -1,4 +1,4 @@
-Apache-Test https://svn.apache.org/repos/asf/perl/Apache-Test/trunk
-Apache-Reload https://svn.apache.org/repos/asf/perl/Apache-Reload/trunk
-Apache-SizeLimit https://svn.apache.org/repos/asf/perl/Apache-SizeLimit/trunk
+Apache-Test https://svn.apache.org/repos/asf/perl/Apache-Test/tags/1_37
+Apache-Reload https://svn.apache.org/repos/asf/perl/Apache-Reload/tags/0_12
+Apache-SizeLimit https://svn.apache.org/repos/asf/perl/Apache-SizeLimit/tags/0_97
 docs        https://svn.apache.org/repos/asf/perl/modperl/docs/trunk/src/docs/2.0

Propchange: perl/modperl/branches/httpd24/
------------------------------------------------------------------------------
    svn:mergeinfo = /perl/modperl/trunk:1213838-1419582

Propchange: perl/modperl/branches/httpd24/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Feb 20 07:54:50 2013
@@ -1 +1 @@
-/perl/modperl/branches/threading:1-584361 /perl/modperl/trunk:1-1151156
+/perl/modperl/branches/threading:1-584361 /perl/modperl/trunk:1-1447142

Modified: perl/modperl/branches/httpd24/Changes
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/Changes?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/Changes (original)
+++ perl/modperl/branches/httpd24/Changes Wed Feb 20 07:54:50 2013
@@ -10,7 +10,54 @@ Also refer to the Apache::Test changes l
 
 =over 3
 
-=item 2.0.6-dev
+=item 2.0.8-dev
+
+Remove all uses of deprecated core perl symbols. [Steve Hay]
+
+Add branch release tag to 'make tag' target. [Phred]
+
+=item 2.0.7 June 5, 2012
+
+Fix breakage caused by removal of PL_uid et al from perl 5.16.0. Patch from
+rt.cpan.org #77129. [Zefram]
+
+=item 2.0.6 April 24, 2012
+
+Preserve 5.8 compatibility surrounding use of MUTABLE_CV [Adam Prime]
+
+Move code after declarations to keep MSVC++ compiler happy. [Steve Hay]
+
+Adopt modperl_pcw.c changes from httpd24 branch. [Torsten Foertsch]
+
+Pool cleanup functions must not longjmp. Catch these exceptions and turn
+them into warnings. [Torsten Foertsch] 
+
+Fix a race condition in our tipool management.
+See http://www.gossamer-threads.com/lists/modperl/dev/104026
+Patch submitted by: SalusaSecondus <sa...@nationstates.net>
+Reviewed by: Torsten Foertsch
+
+Ensure that MP_APXS is set when building on Win32 with MP_AP_PREFIX,
+otherwise the bundled Reload and SizeLimit builds will fail to find a
+properly configured Test environment.
+[Steve Hay]
+
+Fix a few REFCNT bugs.
+Patch submitted by: Niko Tyni <nt...@debian.org>
+Reviewed by: Torsten Foertsch
+
+Correct the initialization of the build config in ModPerl::MM. The global
+variable was only being set once on loading the module, which was before
+Apache2::BuildConfig.pm had been written, leading to cwd and MP_LIBNAME
+being unset when writing the Reload and SizeLimit makefiles.
+[Steve Hay]
+
+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.

Modified: perl/modperl/branches/httpd24/Makefile.PL
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/Makefile.PL?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/Makefile.PL (original)
+++ perl/modperl/branches/httpd24/Makefile.PL Wed Feb 20 07:54:50 2013
@@ -52,6 +52,7 @@ my $code  = ModPerl::Code->new;
 
 sub UNATTENDED() { $build->{MP_PROMPT_DEFAULT} || ! -t STDIN }
 
+# may populate $build->{MP_APXS}
 win32_fetch_apxs() if WIN32;
 
 configure();
@@ -241,6 +242,8 @@ EOI
         }
     }
 
+    $build->{$_} and $ENV{$_} = $build->{$_} for (qw/MP_APXS MP_AP_PREFIX/);
+
     unless ($build->{MP_APXS} or $build->{MP_AP_PREFIX}) {
         my $ok = 0;
         for my $path ($build->find) {
@@ -621,6 +624,8 @@ sub win32_fetch_apxs {
     my $script = catfile($build->{cwd}, 'build', 'win32_fetch_apxs');
     my @args = ($^X, $script, "--with-apache2=$prefix");
     system(@args) == 0 or die "system @args failed: $?";
+    my $apxs = catfile($prefix, 'bin', 'apxs.bat');
+    $build->{MP_APXS} = $apxs if -e $apxs;
 }
 
 
@@ -789,24 +794,23 @@ run_tests : test_clean
 	$(PASSENV) \
 	$(FULLPERL) -I$(INST_ARCHLIB) -I$(INST_LIB) \
 	t/TEST -bugreport -verbose=$(TEST_VERBOSE) $(TEST_FILES)
-	$(MAKE) -k run_subtests
 
 run_subtests ::
-	$(MAKE) -C ModPerl-Registry test
+	cd ModPerl-Registry && $(MAKE) test
 
 run_subtests ::
-	$(MAKE) -C Apache-Reload test
+	cd Apache-Reload && $(MAKE) test
 
 EOF
 
     $preamble .= <<'EOF' unless $build->mpm_is_threaded();
 run_subtests ::
-	$(MAKE) -C Apache-SizeLimit test
+	cd Apache-SizeLimit && $(MAKE) test
 
 EOF
 
     $preamble .= <<'EOF';
-test :: pure_all run_tests test_clean
+test :: pure_all run_tests run_subtests
 EOF
 
     return $preamble;

Modified: perl/modperl/branches/httpd24/README
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/README?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/README (original)
+++ perl/modperl/branches/httpd24/README Wed Feb 20 07:54:50 2013
@@ -3,8 +3,8 @@ This is mod_perl version 2.0
 *** Prerequisites ***
 
 Apache:
-  Dynamic mod_perl (DSO):    Apache 2.0.47 - 2.2.8.
-  Static mod_perl:           Apache 2.0.51 - 2.2.8.
+  Dynamic mod_perl (DSO):    Apache 2.0.47 - 2.2.22.
+  Static mod_perl:           Apache 2.0.51 - 2.2.22.
 
   Newer Apache versions may work with this version of mod_perl.  If
   not, the svn version likely will, which can be obtained from:
@@ -30,7 +30,7 @@ Perl: 
 
 *** Status ***
 
-mod_perl is currently considered beta.
+mod_perl is currently considered stable.
 
 
 *** Documentation ***

Modified: perl/modperl/branches/httpd24/RELEASE
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/RELEASE?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/RELEASE (original)
+++ perl/modperl/branches/httpd24/RELEASE Wed Feb 20 07:54:50 2013
@@ -30,7 +30,7 @@ Instructions for mod_perl 2.0 Release Ma
        make sure you give the correct permissions to them.
 
 1. 'make mydist' - to make sure nothing is missing from the manifest,
-   etc. Now test this generated package mod_perl-2.0.6.tar.gz (not
+   etc. Now test this generated package mod_perl-2.0.8.tar.gz (not
    the current build) with as many
    configurations as possible on as many platforms as possible,
    unpacking the package each time afresh.  
@@ -55,7 +55,7 @@ Instructions for mod_perl 2.0 Release Ma
    to the modperl/dev list (may be longer to give most people a chance
    to catch up). no need to tag this package
 
-   Subject: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC\d+
+   Subject: [RELEASE CANDIDATE]: mod_perl-2.0.8 RC\d+
 
 2a. if problems are detected during stage 2, repeat stages 1 and 2.
 
@@ -75,7 +75,7 @@ Instructions for mod_perl 2.0 Release Ma
      % make -n tag
 
   d. commit Changes README Makefile.PL
-     % svn ci -m "Releasing 2.0.6" Changes README Makefile.PL
+     % svn ci -m "Releasing 2.0.8" Changes README Makefile.PL
 
   e. tag
      % make tag
@@ -84,54 +84,54 @@ Instructions for mod_perl 2.0 Release Ma
   XXXX: This needs to be fixed, and updated, developer beware its outdated and possibly wrong
   f. Update the svn:externals in the new tag
      (you can't propedit remotely yet in svn)
-     % svn co https://svn.apache.org/repos/asf/perl/modperl/tags/2_0_6
-     % svn propedit svn:externals 2_0_6
+     % svn co https://svn.apache.org/repos/asf/perl/modperl/tags/2_0_8
+     % svn propedit svn:externals 2_0_8
      Update the Apache-Test line to current revision
      % svn info https://svn.apache.org/repos/asf/perl/Apache-Test/trunk | grep "Last Changed Rev"
      Update the docs line to the current tag.
      It should look like:
-     % svn propget svn:externals 2_0_6
+     % svn propget svn:externals 2_0_8
        Apache-Test -r 608229 https://svn.apache.org/repos/asf/perl/Apache-Test/trunk
-       docs https://svn.apache.org/repos/asf/perl/modperl/docs/tags/2_0_6/src/docs/2.0
+       docs https://svn.apache.org/repos/asf/perl/modperl/docs/tags/2_0_8/src/docs/2.0
 
-     % svn ci -m "Releasing 2.0.6"
+     % svn ci -m "Releasing 2.0.8"
 
   g. create the final package
      % make dist
 
   h. test the final package again at least once
 
-4. Release the package and update links (e.g. mod_perl-2.0.6.tar.gz)
+4. Release the package and update links (e.g. mod_perl-2.0.8.tar.gz)
 
   a. upload to people.apache.org:/www/perl.apache.org/dist/ - ask the PMC
      chair to give you the needed permissions if you do not have them.
 
-    %  scp mod_perl-2.0.6.tar.gz people.apache.org:/www/perl.apache.org/dist/
+    %  scp mod_perl-2.0.8.tar.gz people.apache.org:/www/perl.apache.org/dist/
 
   b. ssh to people.apache.org, unpack the package, update symlinks to the
      tar ball and unpacked distro:
 
     % ssh people.apache.org
     % cd /www/perl.apache.org/dist/
-    % ln -sf mod_perl-2.0.6.tar.gz mod_perl-2.0-current.tar.gz
-    % tar -xzvf mod_perl-2.0.6.tar.gz
+    % ln -sf mod_perl-2.0.8.tar.gz mod_perl-2.0-current.tar.gz
+    % tar -xzvf mod_perl-2.0.8.tar.gz
     % rm /www/perl.apache.org/dist/mod_perl-2.0-current
-    % ln -sf  mod_perl-2.0.6 mod_perl-2.0-current
+    % ln -sf  mod_perl-2.0.8 mod_perl-2.0-current
 
   c. archive older releases (keep current + one prior release)
 
-    % mv /www/perl.apache.org/dist/mod_perl-2.0.4.tar.gz \
+    % mv /www/perl.apache.org/dist/mod_perl-2.0.6.tar.gz \
          /www/perl.apache.org/dist/old
-    % mv /www/perl.apache.org/dist/mod_perl-2.0.4.tar.gz.asc \
+    % mv /www/perl.apache.org/dist/mod_perl-2.0.6.tar.gz.asc \
          /www/perl.apache.org/dist/old
-    % rm -rf /www/perl.apache.org/dist/mod_perl-2.0.4
+    % rm -rf /www/perl.apache.org/dist/mod_perl-2.0.6
 
   d. update the version and release date in the docs:
     % vi modperl-docs/src/download/index_top.html 
     % vi modperl-docs/doap_Perl.rdf
 
      and commit.
-    % svn ci -m "Releasing 2.0.6" \
+    % svn ci -m "Releasing 2.0.8" \
           modperl-docs/src/download/index_top.html \
           modperl-docs/doap_Perl.rdf
      
@@ -152,27 +152,27 @@ Instructions for mod_perl 2.0 Release Ma
 
   a. sign your local copy of the tarball:
 
-    % gpg --detach-sign --armor mod_perl-2.0.6.tar.gz
+    % gpg --detach-sign --armor mod_perl-2.0.8.tar.gz
 
-    % pgps -b --armor mod_perl-2.0.6.tar.gz
+    % pgps -b --armor mod_perl-2.0.8.tar.gz
 
   b. upload the generated sig file to people.apache.org:
 
-    % scp mod_perl-2.0.6.tar.gz.asc people.apache.org:/www/perl.apache.org/dist/
+    % scp mod_perl-2.0.8.tar.gz.asc people.apache.org:/www/perl.apache.org/dist/
     % ssh people.apache.org
     % cd /www/perl.apache.org/dist/
-    % chmod 0664 mod_perl-2.0.6.tar.gz.asc
-    % ln -sf mod_perl-2.0.6.tar.gz.asc mod_perl-2.0-current.tar.gz.asc
+    % chmod 0664 mod_perl-2.0.8.tar.gz.asc
+    % ln -sf mod_perl-2.0.8.tar.gz.asc mod_perl-2.0-current.tar.gz.asc
 
   c. ask one of the other developers to double check the signature file
      and tarball: download both files and verify the signature:
 
-    http://perl.apache.org/dist/mod_perl-2.0.6.tar.gz.asc
-    http://perl.apache.org/dist/mod_perl-2.0.6.tar.gz
+    http://perl.apache.org/dist/mod_perl-2.0.8.tar.gz.asc
+    http://perl.apache.org/dist/mod_perl-2.0.8.tar.gz
 
-    % gpg --verify mod_perl-2.0.6.tar.gz.asc
+    % gpg --verify mod_perl-2.0.8.tar.gz.asc
 
-    % pgpv mod_perl-2.0.6.tar.gz.asc
+    % pgpv mod_perl-2.0.8.tar.gz.asc
 
   d. make sure that the files you just created are group rw so
      all the dist admins can make changes:
@@ -186,10 +186,10 @@ Instructions for mod_perl 2.0 Release Ma
   a. unpack the package, update symlinks to the tarball and unpacked distro:
 
    % cd /www/www.apache.org/dist/perl/
-   % cp /www/perl.apache.org/dist/mod_perl-2.0.6.tar.gz* .
-   % tar -xzvf mod_perl-2.0.6.tar.gz
-   % mv mod_perl-2.0.4.tar.gz* /www/archive.apache.org/dist/perl/
-   % rm -rf mod_perl-2.0.4
+   % cp /www/perl.apache.org/dist/mod_perl-2.0.8.tar.gz* .
+   % tar -xzvf mod_perl-2.0.8.tar.gz
+   % mv mod_perl-2.0.6.tar.gz* /www/archive.apache.org/dist/perl/
+   % rm -rf mod_perl-2.0.6
 
   b. make sure that the files you just created are group rw so
 
@@ -202,11 +202,11 @@ Instructions for mod_perl 2.0 Release Ma
 
   a. post ... to the modperl, announce lists
   Note, to post to announce@, you must be sending from an apache.org address.
-  Subject: [ANNOUNCE] mod_perl 2.0.6 
+  Subject: [ANNOUNCE] mod_perl 2.0.8 
      include 
   - link at perl.apache.org:
-    http://apache.org/dist/perl/mod_perl-2.0.6.tar.gz
-    http://apache.org/dist/perl/mod_perl-2.0.6.tar.gz.asc (pgp sig)
+    http://apache.org/dist/perl/mod_perl-2.0.8.tar.gz
+    http://apache.org/dist/perl/mod_perl-2.0.8.tar.gz.asc (pgp sig)
   - MD5 sig (as it comes from CPAN upload announce).
   - the latest Changes
 
@@ -217,7 +217,7 @@ Instructions for mod_perl 2.0 Release Ma
   b. edit ./Changes:
      - start a new item with incremented version + '-dev'
 
-  =item 2.0.7-dev
+  =item 2.0.9-dev
 
   c. add a release entry in STATUS
 
@@ -228,7 +228,7 @@ Instructions for mod_perl 2.0 Release Ma
 
   e. commit the changed files
 
-     % svn ci -m "start 2.0.6-dev cycle" Changes lib/mod_perl2.pm \
+     % svn ci -m "start 2.0.8-dev cycle" Changes lib/mod_perl2.pm \
        STATUS RELEASE
 
 10. Old Versions

Modified: perl/modperl/branches/httpd24/STATUS
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/STATUS?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/STATUS (original)
+++ perl/modperl/branches/httpd24/STATUS Wed Feb 20 07:54:50 2013
@@ -3,6 +3,8 @@ mod_perl 2.0 STATUS:                    
 
 Release:
 --------
+   2.000.07   : Released Jun 05, 2012
+   2.000.06   : Released Apr 24, 2012
    2.000.05   : Released Feb 07, 2011
    2.000.04   : Released Apr 16, 2008
    2.000.03   : Released Nov 29, 2006

Modified: perl/modperl/branches/httpd24/lib/Apache2/Build.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/lib/Apache2/Build.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/lib/Apache2/Build.pm (original)
+++ perl/modperl/branches/httpd24/lib/Apache2/Build.pm Wed Feb 20 07:54:50 2013
@@ -275,9 +275,9 @@ sub caller_package {
     return ($arg and ref($arg) eq __PACKAGE__) ? $arg : __PACKAGE__;
 }
 
-my %threaded_mpms;
-undef @threaded_mpms{qw(worker winnt beos mpmt_os2 netware leader perchild
-			threadpool dynamic)};
+my %threaded_mpms = map { $_ => 1 }
+        qw(worker winnt beos mpmt_os2 netware leader perchild threadpool
+           dynamic);
 sub mpm_is_threaded {
     my $self = shift;
     my $mpm_name = $self->mpm_name();
@@ -297,7 +297,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)) {
@@ -1150,7 +1158,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
@@ -1210,7 +1229,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 = ();
@@ -1578,8 +1598,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/httpd24/lib/Apache2/ParseSource.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/lib/Apache2/ParseSource.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/lib/Apache2/ParseSource.pm (original)
+++ perl/modperl/branches/httpd24/lib/Apache2/ParseSource.pm Wed Feb 20 07:54:50 2013
@@ -115,8 +115,16 @@ sub scan {
 
 sub include_dirs {
     my $self = shift;
-    ($self->config->apxs('-q' => 'INCLUDEDIR'),
-     $self->config->mp_include_dir);
+    my $inc = $self->config->apxs('-q' => 'INCLUDEDIR');
+    my @dirs = ($inc, $self->config->mp_include_dir);
+    my $aprinc = $self->config->apxs('-q' => 'APR_INCLUDEDIR');
+
+    unless ($aprinc eq $inc) {
+        # Add APR include directory if different to httpd includedir
+        push @dirs, $aprinc;
+    }
+
+    @dirs;
 }
 
 sub includes { shift->config->includes }
@@ -139,7 +147,8 @@ sub find_includes {
                                     apr_optional mod_include mod_cgi
                                     mod_proxy mod_ssl ssl_ apr_anylock
                                     apr_rmm ap_config mod_log_config
-                                    mod_perl modperl_ apreq);
+                                    mod_perl modperl_ apreq mod_cache
+                                    mod_serf mod_dav);
         $unwanted = qr|^$unwanted|;
         my $wanted = '';
 
@@ -238,6 +247,7 @@ my %defines_wanted = (
         mpmq       => [qw{AP_MPMQ_}],
         options    => [qw{OPT_}],
         override   => [qw{OR_ EXEC_ON_READ ACCESS_CONF RSRC_CONF}],
+        proxy      => [qw{PROXYREQ_}],
         platform   => [qw{CRLF CR LF}],
         remotehost => [qw{REMOTE_}],
         satisfy    => [qw{SATISFY_}],
@@ -280,6 +290,9 @@ my %enums_wanted = (
 
 my $defines_unwanted = join '|', qw{
 HTTP_VERSION APR_EOL_STR APLOG_MARK APLOG_NOERRNO APR_SO_TIMEOUT
+APR_HOOK_PROBES_ENABLED APR_HOOK_INT_DCL_UD
+APLOG_MAX_LOGLEVEL
+APR_BEGIN_DECLS APR_END_DECLS
 };
 
 sub get_constants {

Modified: perl/modperl/branches/httpd24/lib/ModPerl/CScan.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/lib/ModPerl/CScan.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/lib/ModPerl/CScan.pm (original)
+++ perl/modperl/branches/httpd24/lib/ModPerl/CScan.pm Wed Feb 20 07:54:50 2013
@@ -943,7 +943,7 @@ sub new {
     my ($sym) = gensym;
     my $cmd = WIN32 ?
         "$Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $filename |" :
-        "echo '\#include \"$filename\"' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} |";
+        "echo '\#include \"$filename\"' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} | grep -v '^#' |";
     #my $cmd = "echo '\#include <$filename>' | $Cpp->{cppstdin} $Defines $addincludes $Cpp->{cppflags} $Cpp->{cppminus} |";
 
     (open($sym, $cmd) or die "Cannot open pipe from `$cmd': $!")

Modified: perl/modperl/branches/httpd24/lib/ModPerl/Code.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/lib/ModPerl/Code.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/lib/ModPerl/Code.pm (original)
+++ perl/modperl/branches/httpd24/lib/ModPerl/Code.pm Wed Feb 20 07:54:50 2013
@@ -826,7 +826,7 @@ my %ifdef = map { $_, 1 }
        AP_MPMQ_MPM_STATE), # added in 2.0.49
     qw(APR_FPROT_USETID APR_FPROT_GSETID
        APR_FPROT_WSTICKY APR_FOPEN_LARGEFILE), # added in 2.0.50?
-    qw(OPT_INCNOEXEC OPT_INC_WITH_EXEC);
+    qw(OPT_INCNOEXEC OPT_INC_WITH_EXEC); # added/removed in 2.4
 
 sub constants_ifdef {
     my $name = shift;
@@ -890,7 +890,8 @@ EOF
 
             if ($name eq 'DECLINE_CMD' ||
                 $name eq 'DIR_MAGIC_TYPE' ||
-                $name eq 'CRLF') {
+                $name eq 'CRLF' ||
+                $name eq 'CRLF_ASCII') {
                 print $c_fh <<EOF;
               return newSVpv($alias{$name}, 0);
 EOF

Modified: perl/modperl/branches/httpd24/lib/ModPerl/MM.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/lib/ModPerl/MM.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/lib/ModPerl/MM.pm (original)
+++ perl/modperl/branches/httpd24/lib/ModPerl/MM.pm Wed Feb 20 07:54:50 2013
@@ -69,10 +69,12 @@ sub add_dep_after {
     $$string =~ s/($targ\s+::.*?$after_targ)/$1 $add/;
 }
 
+my $build;
+
 sub build_config {
     my $key = shift;
     require Apache2::Build;
-    my $build = Apache2::Build->build_config;
+    $build ||= Apache2::Build->build_config;
     return $build unless $key;
     $build->{$key};
 }
@@ -97,15 +99,14 @@ sub my_import {
 my @default_opts = qw(CCFLAGS LIBS INC OPTIMIZE LDDLFLAGS TYPEMAPS);
 my @default_dlib_opts = qw(OTHERLDFLAGS);
 my @default_macro_opts = ();
-my $b = build_config();
 my %opts = (
-    CCFLAGS      => sub { $b->{MODPERL_CCOPTS}                        },
-    LIBS         => sub { join ' ', $b->apache_libs, $b->modperl_libs },
-    INC          => sub { $b->inc;                                    },
-    OPTIMIZE     => sub { $b->perl_config('optimize');                },
-    LDDLFLAGS    => sub { $b->perl_config('lddlflags');               },
-    TYPEMAPS     => sub { $b->typemaps;                               },
-    OTHERLDFLAGS => sub { $b->otherldflags;                           },
+    CCFLAGS      => sub { $build->{MODPERL_CCOPTS}                            },
+    LIBS         => sub { join ' ', $build->apache_libs, $build->modperl_libs },
+    INC          => sub { $build->inc;                                        },
+    OPTIMIZE     => sub { $build->perl_config('optimize');                    },
+    LDDLFLAGS    => sub { $build->perl_config('lddlflags');                   },
+    TYPEMAPS     => sub { $build->typemaps;                                   },
+    OTHERLDFLAGS => sub { $build->otherldflags;                               },
 );
 
 sub get_def_opt {
@@ -128,7 +129,7 @@ sub WriteMakefile {
         $eu_mm_mv_all_methods_overriden++;
     }
 
-    my $build = build_config();
+    $build ||= build_config();
     my_import(__PACKAGE__);
 
     # set top-level WriteMakefile's values if weren't set already
@@ -158,7 +159,7 @@ sub WriteMakefile {
 sub ModPerl::MM::MY::post_initialize {
     my $self = shift;
 
-    my $build = build_config();
+    $build ||= build_config();
     my $pm = $self->{PM};
 
     while (my ($k, $v) = each %PM) {

Modified: perl/modperl/branches/httpd24/lib/ModPerl/TypeMap.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/lib/ModPerl/TypeMap.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/lib/ModPerl/TypeMap.pm (original)
+++ perl/modperl/branches/httpd24/lib/ModPerl/TypeMap.pm Wed Feb 20 07:54:50 2013
@@ -442,12 +442,12 @@ sub typedefs_code {
         $code .= qq{\#include "$_"\n}
     }
 
-    for my $t (@{ $self->{struct} }) {
+    for my $t (sort {$a->[1] cmp $b->[1]} @{ $self->{struct} }) {
         next if $seen{ $t->[1] }++;
         $code .= "typedef $t->[0] * $t->[1];\n";
     }
 
-    for my $t (@{ $self->{typedef} }) {
+    for my $t (sort {$a->[1] cmp $b->[1]} @{ $self->{typedef} }) {
         next if $seen{ $t->[1] }++;
         $code .= "typedef $t->[0] $t->[1];\n";
     }
@@ -470,7 +470,9 @@ sub sv_convert_code {
     my %seen;
     my $code = "";
 
-    while (my ($ctype, $ptype) = each %$map) {
+    for my $ctype (sort keys %$map) {
+        my $ptype = $map->{$ctype};
+
         next if $self->special($ptype);
         next if $ctype =~ /\s/;
         my $class = $ptype;

Modified: perl/modperl/branches/httpd24/lib/ModPerl/WrapXS.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/lib/ModPerl/WrapXS.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/lib/ModPerl/WrapXS.pm (original)
+++ perl/modperl/branches/httpd24/lib/ModPerl/WrapXS.pm Wed Feb 20 07:54:50 2013
@@ -155,9 +155,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]
@@ -265,7 +272,7 @@ EOF
 
                 $code = <<EOF;
 $type
-$name(obj, val=Nullsv)
+$name(obj, val=(SV *)NULL)
     $class obj
     SV *val
 
@@ -293,10 +300,10 @@ EOF
                     or die "rw_char_undef accessors need pool";
                 $pool .= '(obj)';
 # XXX: not sure where val=$default is coming from, but for now use
-# hardcoded Nullsv
+# hardcoded (SV *)NULL
                 $code = <<EOF;
 $type
-$name(obj, val_sv=Nullsv)
+$name(obj, val_sv=(SV *)NULL)
     $class obj
     SV *val_sv
 

Modified: perl/modperl/branches/httpd24/lib/mod_perl2.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/lib/mod_perl2.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/lib/mod_perl2.pm (original)
+++ perl/modperl/branches/httpd24/lib/mod_perl2.pm Wed Feb 20 07:54:50 2013
@@ -19,7 +19,7 @@ use 5.006;
 use strict;
 
 BEGIN {
-    our $VERSION = "2.000006";
+    our $VERSION = "2.000008";
     our $VERSION_TRIPLET;
 
     if ($VERSION =~ /(\d+)\.(\d\d\d)(\d+)/) {

Modified: perl/modperl/branches/httpd24/src/modules/perl/mod_perl.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/mod_perl.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/mod_perl.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/mod_perl.c Wed Feb 20 07:54:50 2013
@@ -262,7 +262,7 @@ PerlInterpreter *modperl_startup(server_
 
     /* suspend END blocks to be run at server shutdown */
     endav = PL_endav;
-    PL_endav = Nullav;
+    PL_endav = (AV *)NULL;
 
 /* This was fixed in 5.9.0/5.8.1 (17775), but won't compile after 19122 */
 #if MP_PERL_VERSION(5, 8, 0) && \
@@ -439,13 +439,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/httpd24/src/modules/perl/modperl_apache_compat.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_compat.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_compat.h (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_compat.h Wed Feb 20 07:54:50 2013
@@ -66,39 +66,36 @@ AP_DECLARE(const char *) ap_get_server_v
 #define MP_HTTPD_OVERRIDE_HTACCESS (OR_LIMIT|OR_OPTIONS|OR_FILEINFO|OR_AUTHCFG|OR_INDEXES)
 
 #define MP_HTTPD_OVERRIDE_OPTS_UNSET (-1)
+#if AP_SERVER_MAJORVERSION_NUMBER>2 || \
+    (AP_SERVER_MAJORVERSION_NUMBER == 2 && AP_SERVER_MINORVERSION_NUMBER>=3)
 
-#if AP_SERVER_MAJORVERSION_NUMBER>2 || AP_SERVER_MINORVERSION_NUMBER>=3
 /* 2.4 API */
-
+#define MP_HTTPD_OVERRIDE_OPTS_DEFAULT (OPT_UNSET | \
+                                        OPT_ALL | \
+                                        OPT_SYM_OWNER | \
+                                        OPT_MULTI)
 #define mp_add_loaded_module(modp, pool, name) \
   ap_add_loaded_module((modp), (pool), (name))
 
 #define mp_loglevel(s) ((s)->log.level)
 #define mp_module_index_ perl_module.module_index,
 
+#else
+/* 2.2 API */
 #define MP_HTTPD_OVERRIDE_OPTS_DEFAULT (OPT_UNSET | \
                                         OPT_ALL | \
+                                        OPT_INCNOEXEC | \
                                         OPT_SYM_OWNER | \
                                         OPT_MULTI)
-
-#else
-/* 2.2 API */
-
 #define mp_add_loaded_module(modp, pool, name) \
   ap_add_loaded_module((modp), (pool))
 
 #define mp_loglevel(s) ((s)->loglevel)
 #define mp_module_index_
 
-#define MP_HTTPD_OVERRIDE_OPTS_DEFAULT (OPT_UNSET | \
-                                        OPT_ALL | \
-                                        OPT_INCNOEXEC | \
-                                        OPT_SYM_OWNER | \
-                                        OPT_MULTI)
-
 #define ap_unixd_config unixd_config
 
-#endif
+#endif /* 2.4 vs. 2.2 API */
 
 #ifndef PROXYREQ_RESPONSE
 #define PROXYREQ_RESPONSE (3)

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_includes.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_includes.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_includes.h (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_apache_includes.h Wed Feb 20 07:54:50 2013
@@ -39,4 +39,8 @@
 
 #include "util_script.h"
 
+#if !defined(MP_IN_XS) && AP_MODULE_MAGIC_AT_LEAST(20100606, 0)
+APLOG_USE_MODULE(perl);
+#endif
+
 #endif /* MODPERL_APACHE_INCLUDES_H */

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_apr_includes.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_apr_includes.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_apr_includes.h (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_apr_includes.h Wed Feb 20 07:54:50 2013
@@ -35,5 +35,10 @@
 #include "apr_general.h"
 #include "apr_uuid.h"
 #include "apr_env.h"
+#include "apu_version.h"
+#if APU_MAJOR_VERSION > 1 \
+    || (APU_MAJOR_VERSION == 1 && APU_MINOR_VERSION > 3)
+#include "apu_errno.h"
+#endif
 
 #endif /* MODPERL_APR_INCLUDES_H */

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_callback.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_callback.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_callback.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_callback.c Wed Feb 20 07:54:50 2013
@@ -19,7 +19,7 @@
 int modperl_callback(pTHX_ modperl_handler_t *handler, apr_pool_t *p,
                      request_rec *r, server_rec *s, AV *args)
 {
-    CV *cv = Nullcv;
+    CV *cv = (CV *)NULL;
     I32 flags = G_EVAL|G_SCALAR;
     dSP;
     int count, status = OK;
@@ -28,8 +28,8 @@ int modperl_callback(pTHX_ modperl_handl
      * state, so start every callback with a clear tainted status
      * before and after the callback one of the main problems we are
      * trying to solve is that when modperl_croak called (which calls
-     * perl's croak(Nullch) to throw an error object) it leaves the
-     * interpreter in the tainted state which later affects other
+     * perl's croak((char *)NULL) to throw an error object) it leaves
+     * the interpreter in the tainted state which later affects other
      * callbacks that call eval, etc., which triggers perl crash with:
      * Insecure dependency in eval while running setgid.  Callback
      * called exit.
@@ -160,7 +160,7 @@ int modperl_callback_run_handlers(int id
     MpAV *av, **avp;
     int i, status = OK;
     const char *desc = NULL;
-    AV *av_args = Nullav;
+    AV *av_args = (AV *)NULL;
 
     if (!MpSrvENABLE(scfg)) {
         MP_TRACE_h(MP_FUNC, "PerlOff for server %s:%u",

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c Wed Feb 20 07:54:50 2013
@@ -584,7 +584,7 @@ MP_CMD_SRV_DECLARE(perldo)
     if (handler) {
         int status;
         SV *saveconfig = MP_PERLSECTIONS_SAVECONFIG_SV;
-        AV *args = Nullav;
+        AV *args = (AV *)NULL;
 
         modperl_handler_make_args(aTHX_ &args,
                                   "Apache2::CmdParms", parms,

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_common_util.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_common_util.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_common_util.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_common_util.c Wed Feb 20 07:54:50 2013
@@ -69,13 +69,13 @@ MP_INLINE SV *modperl_hash_tie(pTHX_
     /* Prefetch magic requires perl 5.8 */
 #if MP_PERL_VERSION_AT_LEAST(5, 8, 0)
 
-    sv_magicext(hv, NULL, PERL_MAGIC_ext, NULL, Nullch, -1);
+    sv_magicext(hv, NULL, PERL_MAGIC_ext, NULL, (char *)NULL, -1);
     SvMAGIC(hv)->mg_virtual = (MGVTBL *)&modperl_table_magic_prefetch;
     SvMAGIC(hv)->mg_flags |= MGf_COPY;
 
 #endif /* End of prefetch magic */
 
-    sv_magic(hv, rsv, PERL_MAGIC_tied, Nullch, 0);
+    sv_magic(hv, rsv, PERL_MAGIC_tied, (char *)NULL, 0);
 
     return SvREFCNT_inc(sv_bless(sv_2mortal(newRV_noinc(hv)),
                                  gv_stashpv(classname, TRUE)));

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_const.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_const.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_const.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_const.c Wed Feb 20 07:54:50 2013
@@ -51,7 +51,11 @@ static void new_constsub(pTHX_ constants
             gv_init(alias, caller_stash, name, name_len, TRUE);
         }
 
-        GvCV_set(alias, GvCV(*gvp));
+#ifdef MUTABLE_CV
+        GvCV_set(alias, MUTABLE_CV(SvREFCNT_inc(GvCV(*gvp))));
+#else
+        GvCV_set(alias, (CV*)(SvREFCNT_inc(GvCV(*gvp))));
+#endif
     }
 }
 
@@ -60,7 +64,7 @@ int modperl_const_compile(pTHX_ const ch
                           const char *name)
 {
     HV *stash = gv_stashpv(classname, TRUE);
-    HV *caller_stash = Nullhv;
+    HV *caller_stash = (HV *)NULL;
     constants_lookup lookup;
     constants_group_lookup group_lookup;
 

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_env.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_env.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_env.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_env.c Wed Feb 20 07:54:50 2013
@@ -627,17 +627,17 @@ static int modperl_env_magic_get(pTHX_ S
 /* override %ENV virtual tables with our own */
 static MGVTBL MP_vtbl_env = {
     0,
-    MEMBER_TO_FPTR(modperl_env_magic_set_all),
+    modperl_env_magic_set_all,
     0,
-    MEMBER_TO_FPTR(modperl_env_magic_clear_all),
+    modperl_env_magic_clear_all,
     0
 };
 
 static MGVTBL MP_vtbl_envelem = {
     0,
-    MEMBER_TO_FPTR(modperl_env_magic_set),
+    modperl_env_magic_set,
     0,
-    MEMBER_TO_FPTR(modperl_env_magic_clear),
+    modperl_env_magic_clear,
     0
 };
 

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_env.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_env.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_env.h (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_env.h Wed Feb 20 07:54:50 2013
@@ -28,7 +28,7 @@
     MP_magical_tie(ENVHV, mg_flags)
 
 #define modperl_envelem_tie(sv, key, klen) \
-    sv_magic(sv, Nullsv, 'e', key, klen)
+    sv_magic(sv, (SV *)NULL, 'e', key, klen)
 
 void modperl_env_hash_keys(pTHX);
 

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_error.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_error.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_error.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_error.c Wed Feb 20 07:54:50 2013
@@ -78,7 +78,7 @@ void modperl_croak(pTHX_ apr_status_t rc
     }
 
     if (SvTRUE(ERRSV)) {
-        Perl_croak(aTHX_ "%s", SvPV_nolen(ERRSV));
+        Perl_croak(aTHX_ (char *)NULL);
     }
 
     stash = gv_stashpvn("APR::Error", 10, FALSE);
@@ -91,5 +91,5 @@ void modperl_croak(pTHX_ apr_status_t rc
     sv_setiv(*hv_fetch(data, "line", 4, 1), CopLINE(PL_curcop));
     sv_setpv(*hv_fetch(data, "func", 4, 1), func);
 
-    Perl_croak(aTHX_ Nullch);
+    Perl_croak(aTHX_ (char *)NULL);
 }

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_filter.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_filter.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_filter.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_filter.c Wed Feb 20 07:54:50 2013
@@ -355,7 +355,7 @@ modperl_filter_t *modperl_filter_new(ap_
 
 static void modperl_filter_mg_set(pTHX_ SV *obj, modperl_filter_t *filter)
 {
-    sv_magic(SvRV(obj), Nullsv, PERL_MAGIC_ext, NULL, -1);
+    sv_magic(SvRV(obj), (SV *)NULL, PERL_MAGIC_ext, NULL, -1);
     SvMAGIC(SvRV(obj))->mg_ptr = (char *)filter;
 }
 
@@ -431,7 +431,7 @@ static int modperl_run_filter_init(ap_fi
                                    modperl_filter_mode_e mode,
                                    modperl_handler_t *handler)
 {
-    AV *args = Nullav;
+    AV *args = (AV *)NULL;
     int status;
 
     request_rec *r = f->r;
@@ -474,8 +474,8 @@ static int modperl_run_filter_init(ap_fi
 
 int modperl_run_filter(modperl_filter_t *filter)
 {
-    AV *args = Nullav;
-    SV *errsv = Nullsv;
+    AV *args = (AV *)NULL;
+    SV *errsv = (SV *)NULL;
     int status;
     modperl_handler_t *handler =
         ((modperl_filter_ctx_t *)filter->f->ctx)->handler;

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_handler.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_handler.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_handler.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_handler.c Wed Feb 20 07:54:50 2013
@@ -317,7 +317,7 @@ void modperl_handler_make_args(pTHX_ AV 
         switch (*classname) {
           case 'A':
             if (strEQ(classname, "APR::Table")) {
-                sv = modperl_hash_tie(aTHX_ classname, Nullsv, ptr);
+                sv = modperl_hash_tie(aTHX_ classname, (SV *)NULL, ptr);
                 break;
             }
           case 'I':
@@ -608,7 +608,7 @@ int modperl_handler_perl_add_handlers(pT
                                       modperl_handler_action_e action)
 {
     I32 i;
-    AV *av = Nullav;
+    AV *av = (AV *)NULL;
     MpAV **handlers =
         modperl_handler_get_handlers(r, c, s,
                                      p, name, action);

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_interp.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_interp.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_interp.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_interp.c Wed Feb 20 07:54:50 2013
@@ -496,11 +496,19 @@ modperl_interp_t *modperl_interp_select(
 
         set_interp(p);
 
+#if AP_MODULE_MAGIC_AT_LEAST(20111130, 0)
+        MP_TRACE_i(MP_FUNC,
+                   "set interp 0x%lx in %s 0x%lx (%s request for %s)\n",
+                   (unsigned long)interp, desc, (unsigned long)p,
+                   (r ? (is_subrequest ? "sub" : "main") : "conn"),
+                   (r ? r->uri : c->client_ip));
+#else
         MP_TRACE_i(MP_FUNC,
                    "set interp 0x%lx in %s 0x%lx (%s request for %s)\n",
                    (unsigned long)interp, desc, (unsigned long)p,
                    (r ? (is_subrequest ? "sub" : "main") : "conn"),
                    (r ? r->uri : c->remote_ip));
+#endif
     }
 
     /* set context (THX) for this thread */

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_io.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_io.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_io.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_io.c Wed Feb 20 07:54:50 2013
@@ -29,7 +29,7 @@ MP_INLINE void modperl_io_handle_tie(pTH
 
     modperl_io_handle_untie(aTHX_ handle);
 
-    sv_magic(TIEHANDLE_SV(handle), obj, PERL_MAGIC_tiedscalar, Nullch, 0);
+    sv_magic(TIEHANDLE_SV(handle), obj, PERL_MAGIC_tiedscalar, (char *)NULL, 0);
 
     SvREFCNT_dec(obj); /* since sv_magic did SvREFCNT_inc */
 
@@ -117,7 +117,7 @@ modperl_io_perlio_override_stdhandle(pTH
 
     sv_setref_pv(sv, "Apache2::RequestRec", (void*)r);
     status = do_open9(handle, mode == O_RDONLY ? "<:Apache2" : ">:Apache2",
-                      9, FALSE, mode, 0, Nullfp, sv, 1);
+                      9, FALSE, mode, 0, (PerlIO *)NULL, sv, 1);
     if (status == 0) {
         Perl_croak(aTHX_ "Failed to open STD%s: %" SVf,
                    mode == O_RDONLY ? "IN" : "OUT", get_sv("!", TRUE));

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_io_apache.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_io_apache.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_io_apache.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_io_apache.c Wed Feb 20 07:54:50 2013
@@ -70,7 +70,7 @@ PerlIOApache_pushed(pTHX_ PerlIO *f, con
 
     /* this method also sets the right flags according to the
      * 'mode' */
-    code = PerlIOBase_pushed(aTHX_ f, mode, Nullsv, tab);
+    code = PerlIOBase_pushed(aTHX_ f, mode, (SV *)NULL, tab);
 
     return code;
 }

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_mgv.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_mgv.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_mgv.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_mgv.c Wed Feb 20 07:54:50 2013
@@ -138,11 +138,11 @@ GV *modperl_mgv_lookup(pTHX_ modperl_mgv
             }
         }
         else {
-            return Nullgv;
+            return (GV *)NULL;
         }
     }
 
-    return Nullgv;
+    return (GV *)NULL;
 }
 
 #ifdef USE_ITHREADS
@@ -184,7 +184,7 @@ int modperl_mgv_resolve(pTHX_ modperl_ha
 {
     CV *cv;
     GV *gv;
-    HV *stash = Nullhv;
+    HV *stash = (HV *)NULL;
     char *handler_name = "handler";
     char *tmp;
 
@@ -241,7 +241,7 @@ int modperl_mgv_resolve(pTHX_ modperl_ha
 
             handler->mgv_obj = modperl_mgv_compile(aTHX_ p, package + 1);
             gv = modperl_mgv_lookup(aTHX_ handler->mgv_obj);
-            obj = gv ? GvSV(gv) : Nullsv;
+            obj = gv ? GvSV(gv) : (SV *)NULL;
 
             if (SvTRUE(obj)) {
                 if (SvROK(obj) && sv_isobject(obj)) {

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_module.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_module.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_module.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_module.c Wed Feb 20 07:54:50 2013
@@ -165,7 +165,7 @@ static void *modperl_module_config_merge
     server_rec *s;
     int is_startup;
     PTR_TBL_t *table;
-    SV *mrg_obj = Nullsv, *base_obj, *add_obj;
+    SV *mrg_obj = (SV *)NULL, *base_obj, *add_obj;
 #ifdef USE_ITHREADS
     modperl_interp_t *interp;
     MP_PERL_CONTEXT_DECLARE;
@@ -297,8 +297,8 @@ modperl_module_config_create_obj(pTHX_
     }
 
     MP_TRACE_c(MP_FUNC, "%s cfg=0x%lx for %s.%s",
-               method, (unsigned long)cfg,
-               mname, parms->cmd->name);
+               method ? modperl_mgv_last_name(method) : "NULL",
+               (unsigned long)cfg, mname, parms->cmd->name);
 
     /* used by merge functions to get a Perl interp */
     cfg->server = parms->server;
@@ -371,7 +371,7 @@ static const char *modperl_module_cmd_ta
 
     int count;
     PTR_TBL_t *table = modperl_module_config_table_get(aTHX_ TRUE);
-    SV *obj = Nullsv;
+    SV *obj = (SV *)NULL;
     dSP;
 
     if (s->is_virtual) {
@@ -584,7 +584,7 @@ static const char *modperl_module_cmd_fe
 
     if (*retval) {
         SvREFCNT_dec(*retval);
-        *retval = Nullsv;
+        *retval = (SV *)NULL;
     }
 
     if (sv_isobject(obj)) {
@@ -654,7 +654,7 @@ static const char *modperl_module_add_cm
     cmds = apr_array_make(p, fill+1, sizeof(command_rec));
 
     for (i=0; i<=fill; i++) {
-        SV *val = Nullsv;
+        SV *val = (SV *)NULL;
         STRLEN len;
         SV *obj = AvARRAY(module_cmds)[i];
         modperl_module_cmd_data_t *info = modperl_module_cmd_data_new(p);
@@ -727,7 +727,7 @@ static const char *modperl_module_add_cm
 
         if (val) {
             SvREFCNT_dec(val);
-            val = Nullsv;
+            val = (SV *)NULL;
         }
     }
 
@@ -832,10 +832,7 @@ const char *modperl_module_add(apr_pool_
 
     modperl_module_insert(modp);
 
-    if ((errmsg = mp_add_loaded_module(modp, p, modp->name))) {
-        perl_module.next = modp->next;
-        return errmsg;
-    }
+    mp_add_loaded_module(modp, p, modp->name);
 
     apr_pool_cleanup_register(p, modp, modperl_module_remove,
                               apr_pool_cleanup_null);

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_perl.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_perl.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_perl.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_perl.c Wed Feb 20 07:54:50 2013
@@ -55,7 +55,13 @@ void modperl_perl_core_global_init(pTHX)
 
     while (cglobals->name) {
         GV *gv = gv_fetchpv(cglobals->core_name, TRUE, SVt_PVCV);
-        GvCV_set(gv, get_cv(cglobals->sub_name, TRUE));
+#ifdef MUTABLE_CV
+        GvCV_set(gv,
+                 MUTABLE_CV(SvREFCNT_inc(get_cv(cglobals->sub_name, TRUE))));
+#else
+        GvCV_set(gv,
+                 (CV*)(SvREFCNT_inc(get_cv(cglobals->sub_name, TRUE))));
+#endif
         GvIMPORTED_CV_on(gv);
         cglobals++;
     }
@@ -95,6 +101,7 @@ static void modperl_perl_init_ids(pTHX_ 
 {
     sv_setiv(GvSV(gv_fetchpv("$", TRUE, SVt_PV)), ids->pid);
 
+#if !MP_PERL_VERSION_AT_LEAST(5, 16, 0)
 #ifndef WIN32
     PL_uid  = ids->uid;
     PL_euid = ids->euid;
@@ -104,6 +111,7 @@ static void modperl_perl_init_ids(pTHX_ 
 #ifdef MP_MAINTAIN_PPID
     PL_ppid = ids->ppid;
 #endif
+#endif
 }
 
 

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_global.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_global.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_global.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_global.c Wed Feb 20 07:54:50 2013
@@ -69,7 +69,7 @@ static void modperl_perl_global_init(pTH
  *     return $PL_modglobal{$key}{$package} = [];
  * }
  * else {
- *     return $Nullav; # a null pointer in C of course :)
+ *     return (AV *)NULL; # a null pointer in C of course :)
  * }
  */
 static AV *modperl_perl_global_avcv_fetch(pTHX_ modperl_modglobal_key_t *gkey,
@@ -84,7 +84,7 @@ static AV *modperl_perl_global_avcv_fetc
             hv = MP_MODGLOBAL_STORE_HV(gkey);
         }
         else {
-            return Nullav;
+            return (AV *)NULL;
         }
     }
 
@@ -96,7 +96,7 @@ static AV *modperl_perl_global_avcv_fetc
             return (AV*)*hv_store(hv, package, packlen, (SV*)newAV(), 0);
         }
         else {
-            return Nullav;
+            return (AV *)NULL;
         }
     }
 }
@@ -202,7 +202,7 @@ static int modperl_perl_global_avcv_set(
 
 static MGVTBL modperl_vtbl_global_avcv_t = {
     0,
-    MEMBER_TO_FPTR(modperl_perl_global_avcv_set),
+    modperl_perl_global_avcv_set,
     0, 0, 0,
 };
 
@@ -211,7 +211,7 @@ static void modperl_perl_global_avcv_tie
 {
     if (!SvMAGIC((SV*)av)) {
         MAGIC *mg;
-        Newz(702, mg, 1, MAGIC);
+        Newxz(mg, 1, MAGIC);
         mg->mg_virtual = &modperl_vtbl_global_avcv_t;
         mg->mg_ptr = (char *)&MP_modglobal_keys[key];
         mg->mg_len = -1; /* prevent free() of mg->mg_ptr */
@@ -279,7 +279,7 @@ static HV *copyENV(pTHX_ HV *ohv)
     HvRITER(ohv) = hv_riter;
     HvEITER(ohv) = hv_eiter;
 
-    hv_magic(hv, Nullgv, 'E');
+    hv_magic(hv, (GV *)NULL, 'E');
 
     TAINT_NOT;
 
@@ -316,7 +316,7 @@ modperl_perl_global_gvhv_save(pTHX_ modp
     if (mg && mg->mg_type && !SvMAGIC(gvhv->tmphv)) {
         /* propagate SvMAGIC(hv) to SvMAGIC(gvhv->tmphv) */
         /* XXX: maybe newHVhv should do this? */
-        hv_magic(gvhv->tmphv, Nullgv, mg->mg_type);
+        hv_magic(gvhv->tmphv, (GV *)NULL, mg->mg_type);
     }
 #else
     gvhv->tmphv = copyENV(aTHX_ hv);
@@ -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/httpd24/src/modules/perl/modperl_perl_pp.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_pp.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_pp.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_perl_pp.c Wed Feb 20 07:54:50 2013
@@ -48,7 +48,7 @@ static OP *modperl_pp_srefgen(pTHX)
         SvPADTMP_off(sv);
     }
     else {
-        sv = Nullsv;
+        sv = (SV *)NULL;
     }
 
     /* o = Perl_pp_srefgen(aTHX) */
@@ -72,9 +72,9 @@ static OP *modperl_pp_require(pTHX)
 
 static modperl_pp_t MP_ppaddr[] = {
 #ifdef MP_REFGEN_FIXUP
-    MEMBER_TO_FPTR(modperl_pp_srefgen),
+    modperl_pp_srefgen,
 #endif
-    MEMBER_TO_FPTR(modperl_pp_require)
+    modperl_pp_require
 };
 
 void modperl_perl_pp_set(modperl_perl_opcode_e idx)

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_svptr_table.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_svptr_table.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_svptr_table.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_svptr_table.c Wed Feb 20 07:54:50 2013
@@ -58,10 +58,10 @@ PTR_TBL_t *modperl_svptr_table_clone(pTH
     PTR_TBL_ENT_t **src_ary, **dst_ary;
     CLONE_PARAMS parms;
 
-    Newz(0, tbl, 1, PTR_TBL_t);
+    Newxz(tbl, 1, PTR_TBL_t);
     tbl->tbl_max        = source->tbl_max;
     tbl->tbl_items        = source->tbl_items;
-    Newz(0, tbl->tbl_ary, tbl->tbl_max + 1, PTR_TBL_ENT_t *);
+    Newxz(tbl->tbl_ary, tbl->tbl_max + 1, PTR_TBL_ENT_t *);
 
     dst_ary = tbl->tbl_ary;
     src_ary = source->tbl_ary;
@@ -82,11 +82,11 @@ PTR_TBL_t *modperl_svptr_table_clone(pTH
              src_ent = src_ent->next)
         {
             if (dst_ent == NULL) {
-                Newz(0, dst_ent, 1, PTR_TBL_ENT_t);
+                Newxz(dst_ent, 1, PTR_TBL_ENT_t);
                 *dst_ary = dst_ent;
             }
             else {
-                Newz(0, dst_ent->next, 1, PTR_TBL_ENT_t);
+                Newxz(dst_ent->next, 1, PTR_TBL_ENT_t);
                 dst_ent = dst_ent->next;
             }
 
@@ -170,10 +170,10 @@ PTR_TBL_t *
 modperl_svptr_table_new(pTHX)
 {
     PTR_TBL_t *tbl;
-    Newz(0, tbl, 1, PTR_TBL_t);
+    Newxz(tbl, 1, PTR_TBL_t);
     tbl->tbl_max        = 511;
     tbl->tbl_items        = 0;
-    Newz(0, tbl->tbl_ary, tbl->tbl_max + 1, PTR_TBL_ENT_t*);
+    Newxz(tbl->tbl_ary, tbl->tbl_max + 1, PTR_TBL_ENT_t*);
     return tbl;
 }
 
@@ -213,7 +213,7 @@ modperl_svptr_table_store(pTHX_ PTR_TBL_
             return;
         }
     }
-    Newz(0, tblent, 1, PTR_TBL_ENT_t);
+    Newxz(tblent, 1, PTR_TBL_ENT_t);
     tblent->oldval = oldv;
     tblent->newval = newv;
     tblent->next = *otblent;
@@ -262,7 +262,7 @@ modperl_svptr_table_clear(pTHX_ PTR_TBL_
 {
     register PTR_TBL_ENT_t **array;
     register PTR_TBL_ENT_t *entry;
-    register PTR_TBL_ENT_t *oentry = Null(PTR_TBL_ENT_t*);
+    register PTR_TBL_ENT_t *oentry = (PTR_TBL_ENT_t *)NULL;
     UV riter = 0;
     UV max;
 

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_tipool.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_tipool.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_tipool.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_tipool.c Wed Feb 20 07:54:50 2013
@@ -328,9 +328,9 @@ static void modperl_tipool_putback_base(
     MP_TRACE_i(MP_FUNC, "0x%lx now available (%d in use, %d running)",
                (unsigned long)listp->data, tipool->in_use, tipool->size);
 
+    modperl_tipool_broadcast(tipool);
     if (tipool->in_use == (tipool->cfg->max - 1)) {
         /* hurry up, another thread may be blocking */
-        modperl_tipool_broadcast(tipool);
         modperl_tipool_unlock(tipool);
         return;
     }

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_util.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_util.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_util.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_util.c Wed Feb 20 07:54:50 2013
@@ -62,7 +62,7 @@ static SV *modperl_hv_request_find(pTHX_
 {
     static char *r_keys[] = { "r", "_r", NULL };
     HV *hv = (HV *)SvRV(in);
-    SV *sv = Nullsv;
+    SV *sv = (SV *)NULL;
     int i;
 
     for (i=0; r_keys[i]; i++) {
@@ -117,12 +117,12 @@ MP_INLINE server_rec *modperl_sv2server_
 
 MP_INLINE request_rec *modperl_sv2request_rec(pTHX_ SV *sv)
 {
-    return modperl_xs_sv2request_rec(aTHX_ sv, NULL, Nullcv);
+    return modperl_xs_sv2request_rec(aTHX_ sv, NULL, (CV *)NULL);
 }
 
 request_rec *modperl_xs_sv2request_rec(pTHX_ SV *in, char *classname, CV *cv)
 {
-    SV *sv = Nullsv;
+    SV *sv = (SV *)NULL;
     MAGIC *mg;
 
     if (SvROK(in)) {
@@ -177,7 +177,7 @@ MP_INLINE SV *modperl_newSVsv_obj(pTHX_ 
 
     if (!obj) {
         obj = stashsv;
-        stashsv = Nullsv;
+        stashsv = (SV *)NULL;
     }
 
     newobj = newSVsv(obj);
@@ -458,7 +458,7 @@ void modperl_perl_do_sprintf(pTHX_ SV *s
     char *pat = SvPV(*sarg, patlen);
     bool do_taint = FALSE;
 
-    sv_vsetpvfn(sv, pat, patlen, Null(va_list*), sarg + 1, len - 1, &do_taint);
+    sv_vsetpvfn(sv, pat, patlen, (va_list *)NULL, sarg + 1, len - 1, &do_taint);
     SvSETMAGIC(sv);
     if (do_taint) {
         SvTAINTED_on(sv);
@@ -497,7 +497,7 @@ void modperl_perl_exit(pTHX_ int status)
 {
     ENTER;
     SAVESPTR(PL_diehook);
-    PL_diehook = Nullsv;
+    PL_diehook = (SV *)NULL;
     modperl_croak(aTHX_ MODPERL_RC_EXIT, "ModPerl::Util::exit");
 }
 
@@ -537,7 +537,7 @@ SV *modperl_table_get_set(pTHX_ apr_tabl
     }
     else if (key == NULL) {
         retval = modperl_hash_tie(aTHX_ "APR::Table",
-                                  Nullsv, (void*)table);
+                                  (SV *)NULL, (void*)table);
     }
     else if (!sv_val) { /* no val was passed */
         char *val;
@@ -735,7 +735,7 @@ apr_array_header_t *modperl_avrv2apr_arr
     for (i = 0; i <= av_size; i++) {
         SV *sv = *av_fetch(av, i, FALSE);
         char **entry = (char **)apr_array_push(array);
-        *entry = apr_pstrdup(p, SvPV(sv, PL_na));
+        *entry = apr_pstrdup(p, SvPV_nolen(sv));
     }
 
     return array;
@@ -850,7 +850,7 @@ apr_status_t modperl_cleanup_pnotes(void
         pnotes = data;
 #endif
         SvREFCNT_dec(*pnotes);
-        *pnotes = Nullhv;
+        *pnotes = (HV *)NULL;
     }
 
     return APR_SUCCESS;
@@ -870,7 +870,7 @@ static void *modperl_pnotes_cleanup_data
 
 SV *modperl_pnotes(pTHX_ HV **pnotes, SV *key, SV *val,
                    request_rec *r, conn_rec *c) {
-    SV *retval = Nullsv;
+    SV *retval = (SV *)NULL;
 
     if (!*pnotes) {
         apr_pool_t *pool = r ? r->pool : c->pool;
@@ -904,7 +904,7 @@ U16 *modperl_code_attrs(pTHX_ CV *cv) {
     MAGIC *mg;    
 
     if (!SvMAGICAL(cv)) {
-       sv_magic((SV*)cv, Nullsv, PERL_MAGIC_ext, NULL, -1); 
+       sv_magic((SV*)cv, (SV *)NULL, PERL_MAGIC_ext, NULL, -1); 
     }
 
     mg = mg_find((SV*)cv, PERL_MAGIC_ext);

Modified: perl/modperl/branches/httpd24/t/conf/post_config_startup.pl
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/t/conf/post_config_startup.pl?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/t/conf/post_config_startup.pl (original)
+++ perl/modperl/branches/httpd24/t/conf/post_config_startup.pl Wed Feb 20 07:54:50 2013
@@ -98,20 +98,29 @@ sub test_perl_ithreads {
 }
 
 sub test_server_shutdown_cleanup_register {
-    # we can't really test the functionality since it happens at
-    # server shutdown, when the test suite has finished its run
-    # so just check that we can register the cleanup and that it
-    # doesn't segfault
-    Apache2::ServerUtil::server_shutdown_cleanup_register(sub { Apache2::Const::OK });
-
-    # replace the sub with the following to get some visual debug
-    # should log cnt:1 on -start, oncand cnt: 2 -stop followed by cnt: 1)
-    #Apache2::ServerUtil::server_shutdown_cleanup_register( sub {
-    #    my $cnt = Apache2::ServerUtil::restart_count();
-    #    open my $fh, ">>/tmp/out" or die "$!";
-    #    print $fh "cnt: $cnt\n";
-    #    close $fh;
-    #});
+    Apache2::ServerUtil::server_shutdown_cleanup_register sub {
+       warn <<'EOF';
+*** done with server_shutdown_cleanup_register                               ***
+********************************************************************************
+EOF
+    };
+
+    Apache2::ServerUtil::server_shutdown_cleanup_register sub {
+       die "testing server_shutdown_cleanup_register\n";
+    };
+
+    Apache2::ServerUtil::server_shutdown_cleanup_register sub {
+        warn <<'EOF';
+********************************************************************************
+*** This is a test for Apache2::ServerUtil::server_shutdown_cleanup_register ***
+*** Following a line consisting only of * characters there should be a line  ***
+*** containing                                                               ***
+***     "cleanup died: testing server_shutdown_cleanup_register".            ***
+*** The next line should then read                                           ***
+***     "done with server_shutdown_cleanup_register"                         ***
+********************************************************************************
+EOF
+    };
 }
 
 sub ModPerl::Test::exit_handler {

Modified: perl/modperl/branches/httpd24/t/lib/TestAPRlib/pool.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/t/lib/TestAPRlib/pool.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/t/lib/TestAPRlib/pool.pm (original)
+++ perl/modperl/branches/httpd24/t/lib/TestAPRlib/pool.pm Wed Feb 20 07:54:50 2013
@@ -11,7 +11,7 @@ use APR::Pool ();
 use APR::Table ();
 
 sub num_of_tests {
-    return 75;
+    return 77;
 }
 
 sub test {
@@ -333,21 +333,44 @@ sub test {
     {
         my $p = APR::Pool->new;
         $p->cleanup_register('TestAPR::pool::some_non_existing_sub', 1);
-        eval { $p->destroy };
-        ok t_cmp($@,
+
+        my @warnings;
+        local $SIG{__WARN__} = sub {push @warnings, @_};
+        $p->destroy;
+
+        ok t_cmp($warnings[0],
                  qr/Undefined subroutine/,
                  "non existing function");
     }
     {
         my $p = APR::Pool->new;
         $p->cleanup_register(\&non_existing1, 1);
-        eval { $p->destroy };
-        ok t_cmp($@,
+
+        my @warnings;
+        local $SIG{__WARN__} = sub {push @warnings, @_};
+        $p->destroy;
+
+        ok t_cmp($warnings[0],
                  qr/Undefined subroutine/,
                  "non existing function");
     }
 
+    # cleanups throwing exceptions
+    {
+        my $p = APR::Pool->new;
+        $p->cleanup_register(sub {die "1\n"}, 1);
+        $p->cleanup_register(sub {die "2\n"}, 1);
 
+        my @warnings;
+        local $SIG{__WARN__} = sub {push @warnings, @_};
+        local $@="to be preserved";
+        undef $p;
+
+        ok t_cmp(\@warnings,
+                 [map "APR::Pool: cleanup died: $_\n", 2, 1],
+                 "exceptions thrown by cleanups");
+        ok t_cmp($@, "to be preserved", '$@ is preserved');
+    }
 
     ### $p->clear ###
     {

Modified: perl/modperl/branches/httpd24/t/response/TestDirective/cmdparms.pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/t/response/TestDirective/cmdparms.pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/t/response/TestDirective/cmdparms.pm (original)
+++ perl/modperl/branches/httpd24/t/response/TestDirective/cmdparms.pm Wed Feb 20 07:54:50 2013
@@ -134,8 +134,6 @@ TestCmdParms "Vhost"
 
 TestCmdParms "Location"
 
-<Directory />
-    <LimitExcept GET>
-        TestCmdParms "Limit"
-    </LimitExcept>
-</Directory>
+<LimitExcept GET>
+    TestCmdParms "Limit"
+</LimitExcept>

Modified: perl/modperl/branches/httpd24/xs/APR/Brigade/APR__Brigade.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/xs/APR/Brigade/APR__Brigade.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/xs/APR/Brigade/APR__Brigade.h (original)
+++ perl/modperl/branches/httpd24/xs/APR/Brigade/APR__Brigade.h Wed Feb 20 07:54:50 2013
@@ -28,7 +28,7 @@ SV *mpxs_apr_brigade_create(pTHX_ SV *CL
 {
     apr_pool_t *p = mp_xs_sv2_APR__Pool(p_sv);
     apr_bucket_brigade *bb = apr_brigade_create(p, ba);
-    SV *bb_sv = sv_setref_pv(NEWSV(0, 0), "APR::Brigade", (void*)bb);
+    SV *bb_sv = sv_setref_pv(newSV(0), "APR::Brigade", (void*)bb);
     mpxs_add_pool_magic(bb_sv, p_sv);
     return bb_sv;
 }

Modified: perl/modperl/branches/httpd24/xs/APR/Bucket/APR__Bucket.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/xs/APR/Bucket/APR__Bucket.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/xs/APR/Bucket/APR__Bucket.h (original)
+++ perl/modperl/branches/httpd24/xs/APR/Bucket/APR__Bucket.h Wed Feb 20 07:54:50 2013
@@ -25,7 +25,7 @@ static apr_bucket *mpxs_APR__Bucket_new(
 
     apr_size_t full_len;
 
-    if (sv == Nullsv) {
+    if (sv == (SV *)NULL) {
         sv = newSV(0);
         (void)SvUPGRADE(sv, SVt_PV);
     }

Modified: perl/modperl/branches/httpd24/xs/APR/BucketAlloc/APR__BucketAlloc.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/xs/APR/BucketAlloc/APR__BucketAlloc.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/xs/APR/BucketAlloc/APR__BucketAlloc.h (original)
+++ perl/modperl/branches/httpd24/xs/APR/BucketAlloc/APR__BucketAlloc.h Wed Feb 20 07:54:50 2013
@@ -23,7 +23,7 @@ SV *mpxs_APR__BucketAlloc_new(pTHX_ SV *
 {
     apr_pool_t *p          = mp_xs_sv2_APR__Pool(p_sv);
     apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
-    SV *ba_sv = sv_setref_pv(NEWSV(0, 0), "APR::BucketAlloc", (void*)ba);
+    SV *ba_sv = sv_setref_pv(newSV(0), "APR::BucketAlloc", (void*)ba);
     mpxs_add_pool_magic(ba_sv, p_sv);
     return ba_sv;
 }

Modified: perl/modperl/branches/httpd24/xs/APR/Error/Error_pm
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/xs/APR/Error/Error_pm?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/xs/APR/Error/Error_pm (original)
+++ perl/modperl/branches/httpd24/xs/APR/Error/Error_pm Wed Feb 20 07:54:50 2013
@@ -45,7 +45,7 @@ sub num_cmp_not { $_[0]->{rc} != $_[1] }
 $Carp::CarpInternal{+__PACKAGE__}++;
 
 # XXX: Carp::(confess|cluck) see no calls stack when Perl_croak is
-# called with Nullch (which is the way exception objects are
+# called with (char *)NULL (which is the way exception objects are
 # returned), so we fixup it here (doesn't quite work for croak
 # caller).
 sub cluck {

Modified: perl/modperl/branches/httpd24/xs/APR/Finfo/APR__Finfo.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/xs/APR/Finfo/APR__Finfo.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/xs/APR/Finfo/APR__Finfo.h (original)
+++ perl/modperl/branches/httpd24/xs/APR/Finfo/APR__Finfo.h Wed Feb 20 07:54:50 2013
@@ -25,7 +25,7 @@ SV *mpxs_APR__Finfo_stat(pTHX_ const cha
     MP_RUN_CROAK(apr_stat(finfo, fname, wanted, p),
                  "APR::Finfo::stat");
 
-    finfo_sv = sv_setref_pv(NEWSV(0, 0), "APR::Finfo", (void*)finfo);
+    finfo_sv = sv_setref_pv(newSV(0), "APR::Finfo", (void*)finfo);
     mpxs_add_pool_magic(finfo_sv, p_sv);
 
     return finfo_sv;

Modified: perl/modperl/branches/httpd24/xs/APR/IpSubnet/APR__IpSubnet.h
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/xs/APR/IpSubnet/APR__IpSubnet.h?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/xs/APR/IpSubnet/APR__IpSubnet.h (original)
+++ perl/modperl/branches/httpd24/xs/APR/IpSubnet/APR__IpSubnet.h Wed Feb 20 07:54:50 2013
@@ -24,7 +24,7 @@ SV *mpxs_apr_ipsubnet_create(pTHX_ SV *c
     SV *ipsub_sv;
     MP_RUN_CROAK(apr_ipsubnet_create(&ipsub, ipstr, mask_or_numbits, p),
                  "APR::IpSubnet::new");
-    ipsub_sv = sv_setref_pv(NEWSV(0, 0), "APR::IpSubnet", (void*)ipsub);
+    ipsub_sv = sv_setref_pv(newSV(0), "APR::IpSubnet", (void*)ipsub);
     mpxs_add_pool_magic(ipsub_sv, p_sv);
     return ipsub_sv;
 }

Modified: perl/modperl/branches/httpd24/xs/APR/PerlIO/modperl_apr_perlio.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/xs/APR/PerlIO/modperl_apr_perlio.c?rev=1448022&r1=1448021&r2=1448022&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/xs/APR/PerlIO/modperl_apr_perlio.c (original)
+++ perl/modperl/branches/httpd24/xs/APR/PerlIO/modperl_apr_perlio.c Wed Feb 20 07:54:50 2013
@@ -289,7 +289,11 @@ static IV PerlIOAPR_close(pTHX_ PerlIO *
     const char *new_path = NULL;
     apr_os_file_t os_file;
 
+#ifdef PERL_PHASE_DESTRUCT
+    if (PL_phase != PERL_PHASE_DESTRUCT) {
+#else
     if (!PL_dirty) {
+#endif
         /* if this is called during perl_destruct we are in trouble */
         apr_file_name_get(&new_path, st->file);
     }
@@ -304,7 +308,11 @@ static IV PerlIOAPR_close(pTHX_ PerlIO *
                new_path ? new_path : "(UNKNOWN)");
 #endif
 
+#ifdef PERL_PHASE_DESTRUCT
+    if (PL_phase == PERL_PHASE_DESTRUCT) {
+#else
     if (PL_dirty) {
+#endif
         /* there should not be any PerlIOAPR handles open
          * during perl_destruct
          */