From: Richard Levitte Date: Wed, 31 Aug 2016 17:47:35 +0000 (+0200) Subject: Have Configure's HASH or TABLE produce complete lists X-Git-Tag: OpenSSL_1_1_1-pre1~3608 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d63c12c697faa4e2fa0e5d7565521a5813c86415;p=thirdparty%2Fopenssl.git Have Configure's HASH or TABLE produce complete lists Because some targets execute perl code that might die, we risk incomplete lists. Make it so dying doesn't happen when we're listing targets. Reviewed-by: Rich Salz --- diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 2838c3d1763..e75d164197c 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -14,7 +14,10 @@ sub vc_win64a_info { asflags => "/c /Cp /Cx /Zi", asoutflag => "/Fo" }; } else { - die "NASM not found - please read INSTALL and NOTES.WIN for further details\n"; + $die->("NASM not found - please read INSTALL and NOTES.WIN for further details\n"); + $vc_win64a_info = { as => "{unknown}", + asflags => "", + asoutflag => "" }; } } return $vc_win64a_info; @@ -36,7 +39,11 @@ sub vc_win32_info { asoutflag => "/Fo", perlasm_scheme => "win32" }; } else { - die "NASM not found - please read INSTALL and NOTES.WIN for further details\n"; + $die->("NASM not found - please read INSTALL and NOTES.WIN for further details\n"); + $vc_win32_info = { as => "{unknown}", + asflags => "", + asoutflag => "", + perlasm_scheme => "win32" }; } } return $vc_win32_info; @@ -46,18 +53,26 @@ my $vc_wince_info = {}; sub vc_wince_info { unless (%$vc_wince_info) { # sanity check - die '%OSVERSION% is not defined' if (!defined($ENV{'OSVERSION'})); - die '%PLATFORM% is not defined' if (!defined($ENV{'PLATFORM'})); - die '%TARGETCPU% is not defined' if (!defined($ENV{'TARGETCPU'})); + $die->('%OSVERSION% is not defined') if (!defined($ENV{'OSVERSION'})); + $die->('%PLATFORM% is not defined') if (!defined($ENV{'PLATFORM'})); + $die->('%TARGETCPU% is not defined') if (!defined($ENV{'TARGETCPU'})); # # Idea behind this is to mimic flags set by eVC++ IDE... # my $wcevers = $ENV{'OSVERSION'}; # WCENNN - die '%OSVERSION% value is insane' - if ($wcevers !~ /^WCE([1-9])([0-9]{2})$/); - my $wcecdefs = "-D_WIN32_WCE=$1$2 -DUNDER_CE=$1$2"; # -D_WIN32_WCE=NNN - my $wcelflag = "/subsystem:windowsce,$1.$2"; # ...,N.NN + my $wcevernum; + my $wceverdotnum; + if ($wcevers =~ /^WCE([1-9])([0-9]{2})$/) { + $wcevernum = "$1$2"; + $wceverdotnum = "$1.$2"; + } else { + $die->('%OSVERSION% value is insane'); + $wcevernum = "{unknown}"; + $wceverdotnum = "{unknown}"; + } + my $wcecdefs = "-D_WIN32_WCE=$wcevernum -DUNDER_CE=$wcevernum"; # -D_WIN32_WCE=NNN + my $wcelflag = "/subsystem:windowsce,$wceverdotnum"; # ...,N.NN my $wceplatf = $ENV{'PLATFORM'}; diff --git a/Configure b/Configure index 4fec746c4c4..4fbce036cea 100755 --- a/Configure +++ b/Configure @@ -788,7 +788,9 @@ while (@tocheckfor) { @tocheckfor = (keys %new_tocheckfor); } +our $die = sub { die @_; }; if ($target eq "TABLE") { + local $die = sub { warn @_; }; foreach (sort keys %table) { print_table_entry($_, "TABLE"); } @@ -803,6 +805,7 @@ if ($target eq "LIST") { } if ($target eq "HASH") { + local $die = sub { warn @_; }; print "%table = (\n"; foreach (sort keys %table) { print_table_entry($_, "HASH");