[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