Author: stevehay
Date: Mon Mar 18 01:59:22 2013
New Revision: 1457618
URL: http://svn.apache.org/r1457618
Log:
On Perl 5.17.6 and above, hash seeding has changed, and HvREHASH has
disappeared.
Patch to update mod_perl accordingly from rt.cpan.org #83921. [Zefram]
Modified:
perl/modperl/trunk/Changes
perl/modperl/trunk/src/modules/perl/modperl_perl.c
perl/modperl/trunk/t/perl/hash_attack.t
Modified: perl/modperl/trunk/Changes
URL:
http://svn.apache.org/viewvc/perl/modperl/trunk/Changes?rev=1457618&r1=1457617&r2=1457618&view=diff
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Mon Mar 18 01:59:22 2013
@@ -12,6 +12,10 @@ Also refer to the Apache::Test changes l
=item 2.0.8-dev
+On Perl 5.17.6 and above, hash seeding has changed, and HvREHASH has
+disappeared. Patch to update mod_perl accordingly from rt.cpan.org #83921.
+[Zefram]
+
Restore build with Perl 5.8.1, 5.8.2 etc: take care to use
$Config{useithreads} rather than $Config{usethreads}, and supply definitions
of Newx and Newxz as necessary. [Steve Hay]
Modified: perl/modperl/trunk/src/modules/perl/modperl_perl.c
URL:
http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_perl.c?rev=1457618&r1=1457617&r2=1457618&view=diff
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_perl.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_perl.c Mon Mar 18 01:59:22 2013
@@ -265,12 +265,17 @@ void modperl_hash_seed_set(pTHX)
{
#ifdef MP_NEED_HASH_SEED_FIXUP
if (MP_init_hash_seed_set) {
-#if MP_PERL_VERSION(5, 8, 1)
- PL_hash_seed = MP_init_hash_seed;
+#if MP_PERL_VERSION_AT_LEAST(5, 17, 6)
+ memcpy(&PL_hash_seed, &MP_init_hash_seed,
+ sizeof(PL_hash_seed) > sizeof(MP_init_hash_seed) ?
+ sizeof(MP_init_hash_seed) : sizeof(PL_hash_seed));
PL_hash_seed_set = MP_init_hash_seed_set;
-#else
+#elif MP_PERL_VERSION_AT_LEAST(5, 8, 2)
PL_rehash_seed = MP_init_hash_seed;
PL_rehash_seed_set = MP_init_hash_seed_set;
+#else
+ PL_hash_seed = MP_init_hash_seed;
+ PL_hash_seed_set = MP_init_hash_seed_set;
#endif
}
#endif
Modified: perl/modperl/trunk/t/perl/hash_attack.t
URL:
http://svn.apache.org/viewvc/perl/modperl/trunk/t/perl/hash_attack.t?rev=1457618&r1=1457617&r2=1457618&view=diff
==============================================================================
--- perl/modperl/trunk/t/perl/hash_attack.t (original)
+++ perl/modperl/trunk/t/perl/hash_attack.t Mon Mar 18 01:59:22 2013
@@ -8,7 +8,7 @@ use Apache::TestTrace;
use Apache::TestRequest 'GET_BODY_ASSERT';
plan tests => 1,
- need { "relevant only for perl 5.8.2 and higher" => ($] >= 5.008002) };
+ need { "relevant only for perl 5.8.2 and up to 5.17.6" => ($] >= 5.008002
&& $] < 5.017006) };
my $expected = "ok";
my $received = GET_BODY_ASSERT "/TestPerl__hash_attack";