Hi all, Looking on HARMONY-3964 "[drlvm][build] missing MSVCR71D.DLL dependency for debug builds", I'm surprised to realize that only GC dlls in VM ever depend on MSVCR*.DLL, no matter release or debug. All the rest of VM is linked against static LIBCMTD.LIB so every dll carries it's own copy of C runtime, with independent heaps and static data! Now it explains all that troubles with bad frees in HARMONY-3772, and why each dll has to disable assert dialog individually (HARMONY-4715). I've just tried fully dynamic build and indeed all these problems are gone.
I guess why it was done so, and the only reason I could think of is historycal. Does anyone knows other explanation? Otherwise I believe the build must be fixed to link with MSVCRxx.DLL always. Especially as we already redistribute them with classlib. NB related links covering this topic: [1] http://msdn2.microsoft.com/en-us/library/abx4dbyh(VS.71).aspx [2] http://blogs.msdn.com/larryosterman/archive/2004/04/29/123090.aspx
