<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt"><br><br><div class="gmail_quote">On Wed, Dec 19, 2012 at 8:31 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@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 class="HOEnZb"><div class="h5">On Wed, Dec 19, 2012 at 12:50 AM, Dmitry Vyukov <<a href="mailto:dvyukov@google.com">dvyukov@google.com</a>> wrote:<br>

> On Wed, Dec 19, 2012 at 12:15 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>
>>> I use both gcc and ToT clang for testing. clang -Wall -Werror does not catch<br>
>>> there errors.<br>
>><br>
>> See, now that's where I'm confused/this gets interesting. This turned<br>
>> up in a cmake build of llvm ("ninja check-all") without any extra<br>
>> parameters (except to turn on -Werror).<br>
>><br>
>> I can check the make build too - it's possible this is some mismatch<br>
>> between the two, though I'd be surprised.<br>
>><br>
>> How exactly are you running your builds?<br>
><br>
><br>
><br>
> $ cd llvm/projects/compiler-rt/lib/tsan<br>
> $ gcc -v | grep version<br>
> gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)<br>
> $ clang -v | grep version<br>
> clang version 3.3 (trunk 170311)<br>
> $ make -f Makefile.old presubmit && ../sanitizer_common/scripts/check_lint.sh<br>
<br>
</div></div>This last bit is where I'm confused - why are you using a<br>
separate/different build system from the standard configure or CMake<br>
builds? Supporting/using a 3rd build system is problematic. Developers<br>
not using it are liable to break you, and you are liable to break<br>
other developers using either of the other two.<br>
<br>
I guess this may come back to your/Kostya's point that the current<br>
CMake/configure+make build system doesn't do what you need, which is<br>
to compile with the fresh-built Clang? & until that happens you aren't<br>
able to use the standard LLVM project build systems? If that's the<br>
case, then, yes, that really ought to be addressed & now I understand<br>
why it's relevant.<br></blockquote><div><br></div><div>I think we agreed with Dmitry that we need to build things as most here do (cmake + clang) to avoid breaking other's builds. </div><div>But in *addition* to that we need our own scripting stuff to ensure that </div>
<div>  * tsan-rt builds (and works) with gcc and clang </div><div>  * generated code for both compilers have appropriate number of spills/fills and other instructions in the hotspot, etc</div><div>  * tsan tests pass in tsan-rt debug mode (again, both gcc and clang). </div>
<div>  * some more (?)</div><div>Adding all these rules to cmake is a bit of a challenge and no one else needs it anyway. </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
(also, if you want linting as a requirement for the project, please<br>
build that into both the standard build systems as well - otherwise<br>
people are liable to regress it easily)<br></blockquote><div><br></div><div>Yea, we want linting for asan/tsan/msan -rt in cmake.</div><div>Will anyone object if we put cpp_lint.py somewhere into the repository? </div><div>
<br></div><div>--kcc </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
- David<br>
</font></span></blockquote></div><br></div>