diff options
author | Craig A. Berry <craigberry@mac.com> | 2012-10-27 13:23:46 -0500 |
---|---|---|
committer | Craig A. Berry <craigberry@mac.com> | 2012-10-27 13:23:46 -0500 |
commit | 560a4009bab00b294a28f584f9b812b7c1273d94 (patch) | |
tree | 8596c0f07d6ef57eac165997bddc2ac2f40f60dd /cpan/Digest-SHA | |
parent | 5403a9a2060725249a432362f046adec5542d269 (diff) | |
download | perl-560a4009bab00b294a28f584f9b812b7c1273d94.tar.gz |
Workaround for VAX compiler optimizer bug in Digest::SHA.
This was [perl #85932] and has been forwarded upstream as
[rt.cpan.org #80157]. The code is a near-verbatim copy of how
the same problem has been solved in Digest::MD5 since 2001.
After this change, the core build is now working again (slowly!)
on OpenVMS VAX.
Diffstat (limited to 'cpan/Digest-SHA')
-rw-r--r-- | cpan/Digest-SHA/Makefile.PL | 16 | ||||
-rw-r--r-- | cpan/Digest-SHA/lib/Digest/SHA.pm | 2 |
2 files changed, 15 insertions, 3 deletions
diff --git a/cpan/Digest-SHA/Makefile.PL b/cpan/Digest-SHA/Makefile.PL index 2d2ecd5c97..e9f4986fc6 100644 --- a/cpan/Digest-SHA/Makefile.PL +++ b/cpan/Digest-SHA/Makefile.PL @@ -3,7 +3,7 @@ require 5.003000; use strict; use ExtUtils::MakeMaker; use Getopt::Std; -use Config; +use Config qw(%Config); my $PM = 'lib/Digest/SHA.pm'; @@ -23,9 +23,20 @@ push(@defines, '-DNO_SHA_384_512') if $opts{'x'}; if ($Config{archname} =~ /^i[3456]86/) { push(@defines, '-DSHA_STO_CLASS=static') unless $opts{'t'}; } - my $define = join(' ', @defines); + # Workaround for DEC compiler bug, adopted from Digest::MD5 + +my @extra = (); +if ($^O eq 'VMS') { + if (defined($Config{ccname})) { + if (grep(/VMS_VAX/, @INC) && ($Config{ccname} eq 'DEC')) { + # VAX compiler optimizer even up to v6.4 gets stuck + push(@extra, OPTIMIZE => "/Optimize=(NODISJOINT)"); + } + } +} + my %att = ( 'NAME' => 'Digest::SHA', 'VERSION_FROM' => $PM, @@ -34,6 +45,7 @@ my %att = ( 'INC' => '-I.', 'EXE_FILES' => [ 'shasum' ], 'INSTALLDIRS' => ($] >= 5.010 and $] < 5.011) ? 'perl' : 'site', + @extra, ); my $MMversion = $ExtUtils::MakeMaker::VERSION || 0; diff --git a/cpan/Digest-SHA/lib/Digest/SHA.pm b/cpan/Digest-SHA/lib/Digest/SHA.pm index cf1cb66921..4b36acaf98 100644 --- a/cpan/Digest-SHA/lib/Digest/SHA.pm +++ b/cpan/Digest-SHA/lib/Digest/SHA.pm @@ -7,7 +7,7 @@ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); use Fcntl; use integer; -$VERSION = '5.72'; +$VERSION = '5.72_01'; require Exporter; require DynaLoader; |