With 0.9.8h+ the static version of libraries are build using
/MT compiler switch

The exact most recent compiler options are /MT /Zl, not /MT alone...

while dll are build like before using /MD.

Using static libraries is not possible any more cause msvcrt is
linked statically. Any reason for this sudden change?

See ticket #1230, e.g. at http://marc.info/?t=113031950800001&r=1&w=2.

/MT option is something that cannot be used for example to
link static version of openssl to the .dll,  cause in that
case the .dll itself would need to be statically linked
against msvcrt,

This is not true. You can link .obj modules originally compiled with /MT into .dll dynamically linked with msvcrt with /link /NODEFAULTLIB:LIBCMT option. But as of now you're excused from specifying /NODEFAULTLIB with openssl.lib, because /Zl option omits references to LIBCMT.

and that is not in majority cases usable

Can we switch back to the old behavior by using /MD
in both static and dll builds?

/MT /Zl allows you to use static library in either context, i.e. to produce statically linked application or another .dll. While /MD makes it impossible to use static library with statically linked application. Which is why /MT /Zl is chosen for static build. A.

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to