Commit 43800958 authored by Richard Levitte's avatar Richard Levitte
Browse files

Only allow Microsoft assembler with no-asm on Windows



This also restores the possibility to have ml used with VC-WIN32 with
no-asm, which was lost during the mk1mf -> unified transition.

Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
parent 1b741653
Loading
Loading
Loading
Loading
+29 −7
Original line number Diff line number Diff line
@@ -9,15 +9,39 @@ sub vc_win64a_info {
            $vc_win64a_info = { as        => "nasm",
                                asflags   => "-f win64 -DNEAR -Ox -g",
                                asoutflag => "-o" };
        } else {
        } elsif ($disabled{asm}) {
            $vc_win64a_info = { as        => "ml64",
                                asflags   => "/c /Cp /Cx /Zi",
                                asoutflag => "/Fo" };
        } else {
            die "NASM not found - please read INSTALL and NOTES.WIN for further details\n";
        }
    }
    return $vc_win64a_info;
}

my $vc_win32_info = {};
sub vc_win32_info {
    unless (%$vc_win32_info) {
        my $ver=`nasm -v 2>NUL`;
        my $vew=`nasmw -v 2>NUL`;
        if ($ver ne "" || $vew ne "") {
            $vc_win32_info = { as        => $ver ge $vew ? "nasm" : "nasmw",
                               asflags   => "-f win32",
                               asoutflag => "-o",
                               perlasm_scheme => "win32n" };
        } elsif ($disabled{asm}) {
            $vc_win32_info = { as        => "ml",
                               asflags   => "/nologo /Cp /coff /c /Cx /Zi",
                               asoutflag => "/Fo",
                               perlasm_scheme => "win32" };
        } else {
            die "NASM not found - please read INSTALL and NOTES.WIN for further details\n";
        }
    }
    return $vc_win32_info;
}

my $vc_wince_info = {};
sub vc_wince_info {
    unless (%$vc_wince_info) {
@@ -1344,11 +1368,9 @@ sub vms_info {
        # configure with 'perl Configure VC-WIN32 -DUNICODE -D_UNICODE'
        inherit_from     => [ "VC-noCE-common", asm("x86_asm"),
                              sub { $disabled{shared} ? () : "uplink_common" } ],
        as               => sub { my $ver=`nasm -v 2>NUL`;
                                  my $vew=`nasmw -v 2>NUL`;
                                  return $ver ge $vew ? "nasm" : "nasmw" },
        asflags          => "-f win32",
        asoutflag        => "-o",
        as               => sub { vc_win32_info()->{as} },
        asflags          => sub { vc_win32_info()->{asflags} },
        asoutflag        => sub { vc_win32_info()->{asoutflag} },
        ex_libs          => add(sub {
            my @ex_libs = ();
            # WIN32 UNICODE build gets linked with unicows.lib for
@@ -1359,7 +1381,7 @@ sub vms_info {
        }),
        sys_id           => "WIN32",
        bn_ops           => "BN_LLONG EXPORT_VAR_AS_FN",
        perlasm_scheme   => "win32n",
        asoutflag        => sub { vc_win32_info()->{perlasm_scheme} },
        build_scheme     => add("VC-W32", { separator => undef }),
    },
    "VC-CE" => {