*Simo Sorce*
+ * Windows targets support static/dynamic vcruntime linkage
+
+ Using the `enable-static-vcruntime` option OpenSSL can now be configured
+ to use the static or dynamic vcruntime.dll linkage. The multithreaded or
+ single threaded static vcruntime is selected based on the enable-threads option.
+
+ *Neil Horman*
+
* OPENSSL_cleanup() now runs in a global destructor, or not at all by default.
OpenSSL_cleanup() will no longer by default free global objects when run from
cflags => add(picker(default => '/Gs0 /GF /Gy',
debug =>
sub {
- ($disabled{shared} ? "" : "/MDd");
+ ($disabled{shared} ? "" : ($disabled{"static-vcruntime"} ? "/MDd" : ($disabled{threads} ? "" : "/MT")));
},
release =>
sub {
- ($disabled{shared} ? "" : "/MD");
+ ($disabled{shared} ? "" : ($disabled{"static-vcruntime"} ? "/MD": ($disabled{threads} ? "" : "/MT")));
})),
defines => add(picker(default => [], # works as type cast
debug => [ "DEBUG", "_DEBUG" ])),
combine('/GF /Gy',
sub { vc_wince_info()->{cflags}; },
sub { `cl 2>&1` =~ /Version ([0-9]+)\./ && $1>=14
- ? ($disabled{shared} ? " /MT" : " /MD")
+ ? ($disabled{shared} ? " /MT" : ($disabled{"static-vcruntime"} ? " /MD" : ""))
: " /MC"; }),
cppflags => sub { vc_wince_info()->{cppflags}; },
lib_defines => add("NO_CHMOD", "OPENSSL_SMALL_FOOTPRINT"),
"sshkdf",
"sskdf",
"ssl-trace",
+ "static-vcruntime",
"stdio",
"sslkeylog",
"tests",
"rc5" => "default",
"sctp" => "default",
"sslkeylog" => "default",
+ "static-vcruntime" => "default",
"tfo" => "default",
"tls-deprecated-ec" => "default",
"trace" => "default",
### Major changes between OpenSSL 3.6 and OpenSSL 4.0 [under development]
+ * Windows supports the use of staic or dynamic vcruntime linkage
+
* The `OPENSSL_sk_set_cmp_thunks()` call was added to the `STACK_OF` api
* The script tool `c_rehash` was removed. Use `openssl rehash` instead.