<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Feb 11, 2014 at 1:28 PM, Renato Golin <span dir="ltr"><<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</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 class="">On 11 February 2014 05:11, Kostya Serebryany <<a href="mailto:kcc@google.com">kcc@google.com</a>> wrote:<br>

>   This patch is obviously based on the GCC source tree, LLVM source does not have 'libsanitizer' directory or a file configure.tgt.<br>
>   Let me give the first round of comments here, but then please send another patch based on the LLMV tree.<br>
<br>
</div>Hi Kostya,<br>
<br>
Yes, he said so in the first email. ;)<br>
<br>
First of all, thanks for your detailed review, we shall continue that on phab.<br></blockquote><div>My pleasure. I like the fact that the tools will be used on more architectures. </div><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">

<br>
After my email to the GCC list trying to get some cooperation going, I<br>
think this is a good moment to get some rules for GCC contributions to<br>
the sanitizers.<br>
<br>
AFAIU, they have a separate three, which merges from our tree every so<br>
often. The work they do there, unlike Christophe's patch, is mainly<br>
around making it compile with GCC.<br>
<br>
If their tree is "identical" to ours (modulo GCC stuff), than it<br>
should be simple to just apply the patch on LLVM's tree.<br></blockquote><div><br></div><div>The trees are similar, but not identical. </div><div>GCC has libsanitizer where LLVM has lib, tsan for tsan/rtl, include in a different place, some files that LLVM doesn't have at all.</div>
<div>Don't ask me why :) </div><div>So, the simplest way for us to review the patches is if the patches are actually made as the result of "svn diff --diff-cmd=diff -x -U999999" from the LLVM tree</div><div>
(or, simpler, using arc)</div><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">
<br>
I'm guessing something like this:<br>
<br>
1. Develop, test in GCC's sanitizer tree<br></blockquote><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">
2. Take a diff one directory up (to avoid "libsanitizer")<br></blockquote><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">
3. Apply the patch on an LLVM sanitizer's tree (inside compiler-rt)<br>
and re-work the build to LLVM style.<br></blockquote><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">

4. Test (now, this is the hard part for new archs, but we're biting that bullet)<br></blockquote><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">
5. Submit the patch to LLVM's tree via Phab<br>
6. Commit to compiler-rt<br>
7. Merge back into libsanitizer<br>
<br>
Steps 3 and 4 above are the hard ones and one we'll have to help in<br>
some way. Maybe buildbots would help, but for new archs, it will come<br>
after the first patches. I'm sure we'll find a way and lets get that<br>
documented somewhere, so at least we make it easier for other<br>
toolchains to use our libraries. ;)<br></blockquote><div><br></div><div>SGTM.</div><div>Do you want this to be documented as step-by-step at <a href="https://code.google.com/p/address-sanitizer/wiki/HowToContribute">https://code.google.com/p/address-sanitizer/wiki/HowToContribute</a></div>
<div>or somewhere else? </div><div><br></div><div>--kcc </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">

<br>
Makes sense?<br>
<br>
cheers,<br>
--renato<br>
</blockquote></div><br></div></div>