> From: openssl-users [mailto:openssl-users-boun...@openssl.org] On Behalf Of 
> Short, Todd via openssl-users
> Sent: Monday, October 08, 2018 09:56

> Looks to be debug (d) and multi-thread (MT?) versions of the libraries; not 
> sure what MD stands for.

It's Microsoft's naming convention for their C runtime. MT is multithreaded, 
statically linked; MD is multithreaded, dynamically linked. The "d" suffix is, 
as Todd guessed, the debug version.

This is important with Microsoft Visual C, because the various runtimes do not 
play together. Their heaps, iobs, etc are separate. So, for example, if you 
link your program with the MT runtime and with a library that was linked with 
the MD runtime, and your code tries to free memory allocated by the library, 
you'll get a heap exception (if you're lucky) or heap corruption.

You can get away with mixed runtimes if you're careful - if every module frees 
the storage it allocates, and you don't try to create a FILE* in one and use it 
in another, and so on. Nonetheless, it's a gaping architectural flaw, and some 
packages try to accommodate it by providing equivalent versions of their 
libraries.

Todd may well be correct that OP is looking at a LibreSSL package, not an 
OpenSSL one. (LibreSSL isn't "a wrapper for OpenSSL", but whatever.)

--
Michael Wojcik
Distinguished Engineer, Micro Focus


-- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to