This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix NO_HASH_SEED build
authorDaniel Dragan <bulk88@hotmail.com>
Thu, 1 Oct 2015 19:04:29 +0000 (15:04 -0400)
committerTony Cook <tony@develop-help.com>
Tue, 13 Oct 2015 23:50:31 +0000 (10:50 +1100)
commit b1300a738f added PERL_HASH_FUNC_ONE_AT_A_TIME_HARD algo, which was
the first one to introduce 8 byte seeds, previously all the algos used 4
or 16 byte seeds. No case was added to the CPP tree for 8 byte const
seeds, so add one now. Otherwise the #error at the end of the tree runs
and breaks the build. NO_HASH_SEED define was public API in the past and
could be considered to still be public API, see commit f36626324a.
My use for NO_HASH_SEED is reducing entropy for tracking down memory
corruption.

hv_func.h
pod/perldelta.pod

index b0e50e3..ce60e53 100644 (file)
--- a/hv_func.h
+++ b/hv_func.h
@@ -84,6 +84,8 @@
 #       define PERL_HASH_SEED PL_hash_seed
 #   elif PERL_HASH_SEED_BYTES == 4
 #       define PERL_HASH_SEED "PeRl"
+#   elif PERL_HASH_SEED_BYTES == 8
+#       define PERL_HASH_SEED "PeRlHaSh"
 #   elif PERL_HASH_SEED_BYTES == 16
 #       define PERL_HASH_SEED "PeRlHaShhAcKpErl"
 #   else
index e0241a8..d4fd4a8 100644 (file)
@@ -240,7 +240,9 @@ Use L<XXX> with program names to get proper documentation linking. ]
 
 =item *
 
-XXX
+Using the C<NO_HASH_SEED> define in combination with the default hash algorithm
+C<PERL_HASH_FUNC_ONE_AT_A_TIME_HARD> resulted in a fatal error while compiling
+the interpreter, since 5.17.10. This has been fixed.
 
 =back