<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Sorry, I forgot, I already did this:<BR> <BR>NT.common:<BR> <BR>    if USE_MSVCRT<br>        SYSTEM_LIBS{"LIBC"} += [LibIn("msvcrt")]<br>        if equal ($CM3_VS2015_OR_NEWER, "1")<br>            SYSTEM_LIBS{"LIBC"} += [LibIn("vcruntime")]<br>            SYSTEM_LIBS{"LIBC"} += [LibIn("ucrt")]<br>        end<br>    else<br>        SYSTEM_LIBS{"LIBC"} += [LibIn("libcmt")]<br>        if equal ($CM3_VS2015_OR_NEWER, "1")<br>            SYSTEM_LIBS{"LIBC"} += [LibIn("libvcruntime")]<br>            SYSTEM_LIBS{"LIBC"} += [LibIn("libucrt")]<br>        end<br>    end<br><br><br><BR>so:<BR>set CM3_VS2015_OR_NEWER=1<BR> <BR>in your environment. Easy enough? I'm not sure.<BR> <BR> - Jay<BR><br> <BR><div><hr id="stopSpelling">From: jay.krell@cornell.edu<br>To: dmuysers@hotmail.com; m3devel@elegosoft.com<br>Date: Sun, 28 Feb 2016 22:39:15 +0000<br>Subject: [M3devel] cm3 linking to Visual C++ runtime<br><br>

<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}

--></style>
<div dir="ltr"> For a very long time, to link the Visual C++ C runtime library, you linked to one of: <br>  <br>  libcmt.lib -- static C runtime <br>  msvcrt.lib -- import library for dynamic C runtime, and static startup code<br>  libcmtD.lib - debug static C runtime <br>  msvcrtD.lib -- import library for debug dynamic C runtime, and static startup code <br> <br> <br> This changes with Visual C++ 14/2015. <br> The C runtime has been split into three pieces. <br> I believe you have to link to three libraries. <br>   msvcrt.lib ucrt.lib vcruntime.lib <br>  OR: <br>   libcmt.lib libucrt.lib libvcruntime.lib <br><br> <br> Part of the rationale here is to actually slow down the rate of change. <br> Previously, the entire C runtime was revised with every release.<br> Now, a large chunk of it has been moved out into the "operating system" <br> and will remain compatible with all toolsets. That is the "ucrt" part. <br> U is for universal. <br> <br><br>"makefile breakage" is unfortunate. <br><br> <br>  I'm not sure what to do in the config files, to automatically work with anything.  <br>  Perhaps remove the /nodefaultlib.  <br>  /nodefaultlib has a lot of precedent in multiple systems, but so does not using it.  <br> <br>  <br>  For now, please adjust your config files.  <br> <br>  <br>  Probably removing /nodefaultlib is the right thing. <br> <br> A long time ago, there were cm3 releases set to use the non-thread-safe C runtime. <br> /nodefaultlib was needed to workaround that.  <br> The non-thread-safe C runtime has not now existed for a while. <br> <br><br> - Jay <br> <br>
                                          </div>
<br>_______________________________________________
M3devel mailing list
M3devel@elegosoft.com
https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel</div>                                           </div></body>
</html>