Commit c32cbe97 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

Configurations/10-main.conf: omit now redundant -D_WINDLL.



... and refine /MT vs. /MD flag handling.

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
parent d237d699
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
@@ -1238,13 +1238,10 @@ sub vms_info {
        coutflag         => "/Fo",
        rc               => "rc",
        rcoutflag        => "/fo",
        lib_cflags       => sub { join(" ",
                                       ($disabled{shared} ? "/Zl" : ()),
                                       "/Zi /Fdlib") },
        lib_cflags       => add("/Zi /Fdlib"),
        dso_cflags       => "/Zi",
        bin_cflags       => "/Zi /Fdapp",
        lflags           => add("/debug"),
        shared_cflag     => "-D_WINDLL",
        shared_ldflag    => "/dll",
        shared_target    => "win-shared", # meaningless except it gives Configure a hint
        thread_scheme    => "winthreads",
@@ -1255,14 +1252,29 @@ sub vms_info {
        cflags           => add(picker(default => "-DUNICODE -D_UNICODE",
                                       debug   =>
                                       sub {
                                           ($disabled{shared} ? "/MT" : "/MD")
                                               ."d /Od -DDEBUG -D_DEBUG";
                                           ($disabled{shared} ? "" : "/MDd")
                                               ." /Od -DDEBUG -D_DEBUG";
                                       },
                                       release =>
                                       sub {
                                           ($disabled{shared} ? "/MT" : "/MD")
                                           ($disabled{shared} ? "" : "/MD")
                                               ." /Ox /O2 /Ob2";
                                       })),
        lib_cflags       => add(sub { $disabled{shared} ? "/MT /Zl" : () }),
        # Following might/should appears controversial, i.e. defining
        # /MDd without evaluating $disabled{shared}. It works in
        # non-shared build because static library is compiled with /Zl
        # and bares no reference to specific RTL. And it works in
        # shared build because multiple /MDd options are not prohibited.
        # But why /MDd in static build? Well, basically this is just a
        # reference point, which allows to catch eventual errors that
        # would prevent those who want to wrap OpenSSL into own .DLL.
        # Why not /MD in release build then? Well, some are likely to
        # prefer [non-debug] openssl.exe to be free from Micorosoft RTL
        # redistributable.
        bin_cflags       => add(picker(debug   => "/MDd",
                                       release => sub { $disabled{shared} ? "/MT" : () },
                                      )),
        bin_lflags       => add("/subsystem:console /opt:ref"),
        ex_libs          => sub {
            my @ex_libs = ();