develooper Front page | perl.perl5.porters | Postings from December 2018

[PATCH] Avoid recursion depth variations across builds

Thread Previous
From:
Bernhard M. Wiedemann
Date:
December 27, 2018 16:54
Subject:
[PATCH] Avoid recursion depth variations across builds
Message ID:
20181227165444.13298-1-bwiedemann@suse.de
See https://reproducible-builds.org/ for why this is good.

Variations are likely coming from ASLR.

On an openSUSE Linux system, this patch changed
$Storable::recursion_limit
from varying between 14265 and 14267 to a constant 14256

There could be a chance for remaining variations.

---
Better fixes welcome.
---
 dist/Storable/stacksize | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dist/Storable/stacksize b/dist/Storable/stacksize
index f93eccce1a..33012b13d5 100644
--- a/dist/Storable/stacksize
+++ b/dist/Storable/stacksize
@@ -164,8 +164,8 @@ my $max_depth_hash = $n;
 # be fairly aggressive in trimming this, smoke testing showed several
 # several apparently random failures here, eg. working in one
 # configuration, but not in a very similar configuration.
-$max_depth = int(0.6 * $max_depth);
-$max_depth_hash = int(0.6 * $max_depth_hash);
+$max_depth = int(0.6 * $max_depth) & ~31;
+$max_depth_hash = int(0.6 * $max_depth_hash) & ~31;
 
 my $stack_reserve = $^O eq "MSWin32" ? 32 : 16;
 if ($] ge "5.016" && !($^O eq "cygwin" && $ptrsize == 8)) {
-- 
2.16.4

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About