<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jan 12, 2017 at 1:18 PM, Vadim Chugunov via lldb-dev <span dir="ltr"><<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><font face="verdana, sans-serif">I was referring to this: <a href="https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows" target="_blank">https://support.<wbr>microsoft.com/en-us/help/<wbr>2999226/update-for-universal-<wbr>c-runtime-in-windows</a>.   Granted, it was probably marked as non-critical, so some users may have skipped it.</font><br></div><span class=""><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">>  One of the redist options is to include an MSU in your installer that tells Windows Update to add UCRT to the list of components it updates</font></div><div><font face="verdana, sans-serif"><br></font></div></span><div><font face="verdana, sans-serif">We should figure out how to do that.  </font></div><div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">But meanwhile, do people here agree that LLVM should be built with the /MD flag?</font></div></div></blockquote><div><br></div><div>Like Reid said above, clang should statically link the CRT.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="h5"><div><font face="verdana, sans-serif"><br></font></div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Thu, Jan 12, 2017 at 9:36 AM, Adrian McCarthy <span dir="ltr"><<a href="mailto:amccarth@google.com" target="_blank">amccarth@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">> <span style="font-size:16px"> [UCRT] had been pushed to Vista, 7 and 8 via Windows Update</span><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px">I didn't think that was true in general.  One of the redist options is to include an MSU in your installer that tells Windows Update to add UCRT to the list of components it updates.  So some Vista, 7, and 8 users may have received it via Windows Update, but probably not all.</span></div><div><span style="font-size:16px"><br></span></div><div><span style="font-size:16px">That's what all the deployment articles seem to suggest (assuming I've understood them correctly).  I suppose they may have decided to ship UCRT to pre-Windows 10 users anyway, but I haven't come across anything that says that.</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 11, 2017 at 6:48 PM, Vadim Chugunov <span dir="ltr"><<a href="mailto:vadimcn@gmail.com" target="_blank">vadimcn@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>On Wed, Jan 11, 2017 at 3:54 PM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Ahh, that would make sense as well, since LLDB links against liblldb as a dll.  Don't see a good solution to this short of forcing dynamic linking.  liblldb has to be a dll because it needs to be visible to python as an extension module.  And if it's a dll and uses static linking, then we would have to require that lldb.exe not pass file handles across the dll boundary.  If that's easy then great, but I suspect it probably isn't.  <div><br></div><div>Honestly dynamic linking was created to solve exactly these kinds of problems.  Yes there's the redist issue if on Windows < 10, but it seems like a small price to pay for something that doesn't have weird subtle bugs.  And as time goes on, more and more people will be on windows 10 anyway.</div><div><br></div><div>Does the redistributable issue present a challenge for your use case?</div></div></blockquote><div><br></div></span><div>There are actually two part of the MSVC runtime: the Universal C Runtime (UCRT) and the compiler-specific, VCRUNTIME140.   The former is widely available (comes with Windows 10, and had been pushed to Vista, 7 and 8 via Windows Update).  The latter is tied to the compiler version and must still be redistributed with programs.   Ideally, LLDB would use dynamic UCRT + static VCRUNTIMExx.  Unfortunately this doesn't seem to be a supported configuration (<a href="https://bugs.python.org/issue24872" target="_blank">discussion of this issue in Python bug tracker</a>).   Looks like Python folks opted for shipping VCRUNTIME140.DLL in their install directory.</div><div><br></div></div></div></div>
</blockquote></div><br></div>
</blockquote></div><br></div></div></div></div>
<br>______________________________<wbr>_________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/lldb-dev</a><br>
<br></blockquote></div><br></div></div>