<div dir="ltr"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><p>Forgot to add cfe-dev back in</p></div></div></div></div></div></div>
<br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Joshua Gerrard</b> <span dir="ltr"><<a href="mailto:joshua.gerrard@roli.com">joshua.gerrard@roli.com</a>></span><br>Date: 3 September 2015 at 11:44<br>Subject: Re: [cfe-dev] Windows and Clang<br>To: Russell Wallace <<a href="mailto:russell.wallace@gmail.com">russell.wallace@gmail.com</a>><br><br><br><div dir="ltr">Yes, that's pretty recent.<div><br></div><div>I <b>think</b> the compiler-rt stuff is needed because we pull information out of clang whilst it's compiling apparently (I had to go and ask someone else about this). I know that the project doesn't compile without it.</div><div><br></div><div>As for what's going wrong ...</div><div><br></div><div><b>Release:</b></div><div>- sometimes it crashes outright with nothing to give us an idea of why, the diagnostics we get back are in a different order every time, even when the number of threads is set to 1 in our project, and all other sorts of random things that scream undefined behaviour with no clue as to where it is.</div><div><br></div><div><b>Debug:</b></div><div>- Windows headers are throwing errors out, even though the MSVC compatibility flags and such are set as follows:</div><div><br></div><div><div>        lo.MSVCCompat = true;</div><div>        lo.MSCompatibilityVersion = clang::LangOptions::MSVC2013;</div><div>        lo.MicrosoftExt = true;</div><div>        lo.AsmBlocks = true;</div></div><div><br></div><div>Thank you for showing your build process too, after looking at it, it's slightly different from what I've got here so that might be a place to start. I'll do that now!</div><div><br></div><div>Merci,</div><div><br></div><div>Joshua</div></div><div class="gmail_extra"><span class="">
<br></span><div><div class="h5"><div class="gmail_quote">On 3 September 2015 at 11:33, Russell Wallace <span dir="ltr"><<a href="mailto:russell.wallace@gmail.com" target="_blank">russell.wallace@gmail.com</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>I also just ran a test trying to compile my project with clang and link it with all the libraries that had been compiled with Microsoft C++:<br></div><div><br></div>clang-cl -fms-compatibility-version=19 /J -I\llvm\build\include -I\llvm\include -I\mpir /MTd *.cpp \llvm\build\Debug\lib\*.lib \mpir\build.vc14\lib_mpir_core2\x64\Debug\mpir.lib <br><div><br></div><div>And it all worked fine, even though a fair number of C++ features were used. To emphasise, this is linking C++ object files compiled with different compilers, something traditionally considered theoretically impossible, and it works! Exceptions are the main things I don't use, because they are still apparently a work in progress.<br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 3, 2015 at 11:25 AM, Russell Wallace <span dir="ltr"><<a href="mailto:russell.wallace@gmail.com" target="_blank">russell.wallace@gmail.com</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 class="gmail_extra"><div class="gmail_quote"><span>On Thu, Sep 3, 2015 at 11:16 AM, Joshua Gerrard <span dir="ltr"><<a href="mailto:joshua.gerrard@roli.com" target="_blank">joshua.gerrard@roli.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">I'm using Visual Studio 2013 (just because we suppose it'll be better tested etc) with revision 245761 of clang, compiler-rt and llvm. I'm also using the ORC JIT engine to compile the C++ code.</div></blockquote><div><br></div></span><div>Current revision seems to be 246... so that's pretty recent, right?</div><div><br></div><div>Is there a reason you need to use compiler-rt? </div><span><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>The errors we're getting are non-deterministic, which is what is making it so hard to figure out.</div></div></blockquote><div><br></div></span><div>As in, crashes due to stray pointers? </div><span><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>Are you building the release from source, and if so, what cmake flags are you using? </div></div></blockquote><div><br></div></span><div>Yes. <a href="https://github.com/russellw/ayane/blob/master/build-clang.bat" target="_blank">https://github.com/russellw/ayane/blob/master/build-clang.bat</a></div><span><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>Any other things I should know about that you use to build your project? </div></div></blockquote><div><br></div></span><div>Current project build procedure:</div><div><br></div><div>if "%VCINSTALLDIR%"=="" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall" x64</div><div>cl /Fea /I\llvm\build\include /I\llvm\include /I\mpir /MP /MTd *.cpp \llvm\build\Debug\lib\*.lib \mpir\build.vc14\lib_mpir_core2\x64\Debug\mpir.lib setargv.obj</div><div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div></div>
</div><br></div>