Commit 3c8be9c3 authored by Richard Levitte's avatar Richard Levitte Committed by Richard Levitte
Browse files

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: default avatarRich Salz <rsalz@openssl.org>
(cherry picked from commit d63c12c6)
parent 67d81419
Loading
Loading
Loading
Loading
+24 −9
Original line number Diff line number Diff line
@@ -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'};

+3 −0
Original line number Diff line number Diff line
@@ -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");