<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">+Chris.</div><div class=""><br class=""></div><div class="">My understanding was that it is technically impossible for things in “lib”, as they are built first, and there’s no way to tell them to do that before “clang”.</div><div class="">I’m not a CMake expert, and I might be wrong.</div><br class=""><div><blockquote type="cite" class=""><div class="">On May 9, 2017, at 2:15 PM, Kostya Serebryany <<a href="mailto:kcc@google.com" class="">kcc@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-interchange-newline"><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_quote" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">On Tue, May 9, 2017 at 1:56 PM, George Karpenkov<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:ekarpenkov@apple.com" target="_blank" class="">ekarpenkov@apple.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class="">Again, after offline conversation with Chris Bieneman:</div><div class=""><br class=""></div><div class=""> - move to compiler-rt would be too complicated due to change in licenses</div><div class=""> - it would make much more sense to move to “tools” folder instead, for the following reasons:</div><div class="">   <span class="Apple-converted-space"> </span>* conceptually, it’s a tool, not a library</div><div class="">   <span class="Apple-converted-space"> </span>* all other projects in “lib” depend on LLVM and can not build without LLVM, libFuzzer does not</div><div class="">   <span class="Apple-converted-space"> </span>* practically speaking, CMake has no way of knowing whether Clang is being built when</div><div class="">     <span class="Apple-converted-space"> </span>“lib” is compiled, yet it does know for projects in tools.</div><div class=""><br class=""></div><div class="">Using a freshly built clang for projects in “tools” is embarrassingly easy and only requires a couple of lines</div><div class="">of configuration change.</div><div class=""><br class=""></div><div class="">Kostya, what about moving to “tools” then?</div></div></blockquote><div class=""><br class=""></div><div class="">Well, ok, this sounds cool. </div><div class="">But can we make one more step and try to preserve the code where it is, for the sake of compatibility? </div><div class="">E.g. can we have the CMake in tools while still keeping the code in lib? </div><div class="">Or a link of some kind?</div><div class=""><br class=""></div><div class="">My worry is that there are already quite a few places that know where libFuzzer code is, </div><div class="">and I don't control all of them. </div><div class=""><br class=""></div><div class="">And, finally, I really don't get why we can do something in tools and can't do the same in lib. </div><div class="">Or we simply don't want to do it to keep things simple? </div><div class=""><br class=""></div><div class="">--kcc </div><div class=""><br class=""></div><div class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class=""><div class="h5"><br class=""><div class=""><blockquote type="cite" class=""><div class="">On May 9, 2017, at 11:07 AM, Dan Liew <<a href="mailto:dan@su-root.co.uk" target="_blank" class="">dan@su-root.co.uk</a>> wrote:</div><br class="m_877734713401612435Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;" class="">On 9 May 2017 at 18:55, Kostya Serebryany <</span><a href="mailto:kcc@google.com" target="_blank" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class="">kcc@google.com</a><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;" class="">> wrote:</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><br class=""><br class="">On Tue, May 9, 2017 at 10:23 AM, Dan Liew <<a href="mailto:dan@su-root.co.uk" target="_blank" class="">dan@su-root.co.uk</a>> wrote:<br class=""><blockquote type="cite" class=""><br class=""><blockquote type="cite" class="">Does anyone see good reasons why libFuzzer should remain in llvm repo<br class="">(as<br class="">opposed to moving it to compiler-rt)?<br class=""></blockquote><br class="">Does moving LibFuzzer to compiler-rt imply that it is compiled as part<br class="">of compiler-rt and shipped with it?<br class=""><br class="">How does that fit with LibFuzzer's model of allowing the user to<br class="">provide their own `main()`.<br class=""></blockquote><br class=""><br class="">libFuzzer doesn't allow users to use their own main (not any more).<br class="">Although I am not sure how that's related to moving libFuzzer somewhere.<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;" class="">Oops. That shows how long it's been since I looked at the source code.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;" class="">It was related in that if LibFuzzer was shipped as part of compiler-rt</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;" class="">I presumed we would need to supply both libraries to end users.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;" class="">Given that this feature was removed it is a non-issue.</span></div></blockquote></div></div></div></div></blockquote></div></div></blockquote></div><br class=""></body></html>