[M3devel] binary distribution incompatibility with very old C runtime

Jay K jay.krell at cornell.edu
Sun Dec 27 18:42:52 CET 2015


For the record..
 

If you try to build the current source with the 5.8.6 release..
or rather, if you try to do anything with 5.8.6, and have
a particularly old C/C++ toolset, like over 10 years old, on Windows, you get:
 

 m3core.lib.sa(ThreadWin32C.obj) : error LNK2019: unresolved external symbol __wassert referenced in function _ThreadWin32__ProcessStopped
 m3core.lib.sa(dtoa.obj) : error LNK2019: unresolved external symbol __ftol2_sse referenced in function _m3_strtod
 

The C compiler and runtime change a surprising much through the years.
 
Merely using assert or floating point to integer converson via casting, with a new compiler, does not work with older runtimes.

We can do better such as either:
 1) Generate all C, so the binary distribution matters less.
 2) This is using static linking of m3core for bootstrapping.
    Deliberately not just because cm3 always does that, but
    also as a policy for supposed higher/easier compatibility
    with older releases. Perhaps that is a mistake.


 For today I'll just install a newer compiler.
 
 
 - Jay
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20151227/dc68adbb/attachment-0001.html>


More information about the M3devel mailing list