<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 15, 2014 at 5:33 PM, Alp Toker <span dir="ltr"><<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.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 class=""><div class="h5"><br>
On 16/07/2014 02:38, Jonathan Roelofs 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">
<br>
<br>
On 7/15/14, 3:22 PM, Nico Weber 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">
On Tue, Jul 15, 2014 at 3:07 PM, Alp Toker <<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a><br>
<mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>>> wrote:<br>
<br>
<br>
    On 16/07/2014 00:38, Nico Weber wrote:<br>
<br>
        On Tue, Jul 15, 2014 at 10:08 AM, Alp Toker <<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a><br>
        <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>> <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a> <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>>>><br>

        wrote:<br>
<br>
<br>
             On 15/07/2014 05:07, Nico Weber wrote:<br>
<br>
                 On Mon, Jul 14, 2014 at 4:15 PM, Alp Toker <<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a><br>
        <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>><br>
                 <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a> <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>>><br>
        <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a> <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>><br>
<br>
                 <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a> <mailto:<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>>>>> wrote:<br>
<br>
                     Author: alp<br>
                     Date: Mon Jul 14 18:15:48 2014<br>
                     New Revision: 213010<br>
<br>
                     URL:<br>
<a href="http://llvm.org/viewvc/llvm-__project?rev=213010&view=rev" target="_blank">http://llvm.org/viewvc/llvm-__<u></u>project?rev=213010&view=rev</a><br>
<<a href="http://llvm.org/viewvc/llvm-project?rev=213010&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=213010&view=rev</a>><br>
                     Log:<br>
                     Define ENABLE_CLANG_ARCMT in the legacy build system too<br>
<br>
<br>
                 As far as I know, make is just as supported as cmake, no?<br>
<br>
<br>
             Not really. it hasn't seen any of the feature work CMake has for<br>
             at least a year. You only need to look at SVN logs to see all the<br>
             hard work and hours spent on the CMake setup to make it outclass<br>
             the other setup.<br>
<br>
<br>
        Or to see that the CMake build is maintenance for some reason ;-)<br>
<br>
<br>
             Platform support is limited compared to CMake, likewise<br>
             cross-compilation has been left behind thanks to the remarkable<br>
             CMake sub-invocation work. No compilation database generation,<br>
             meaning a poor experience for anyone trying to use tooling on the<br>
             codebase. Broken dependency scanning, you have to "touch" files or<br>
             risk getting miscompiles. And there are many Windows developers<br>
             contributing these days -- their enhancements basically only ever<br>
             get added to CMake while Makefiles are left with minimal build fixes.<br>
<br>
             Then there's bit rot. Various clang tests aren't supported with<br>
             the 'makefiles' build -- they're simply not run -- the set of<br>
             installed headers isn't necessarily canonical with makefiles<br>
             either. Whenever I've pinged that makefiles need to track some<br>
             change or other, nobody's been too interested in following up. So<br>
             users really aren't getting the "full LLVM experience" with it at<br>
             this point, the 'makefiles' bots aren't getting full coverage etc.<br>
<br>
             As far as I can tell it would take a large effort to get the<br>
             traditional build system on par with CMake at this point and<br>
             nobody's puting in the time to actually do that. While supported,<br>
             the old system definitely meets the definition of "legacy". Only<br>
             commits could have changed that, not any amount of hand waving or<br>
             arguing that it's still the default in "buildit" :-)<br>
<br>
<br>
        Sounds like you prefer the cmake build,<br>
<br>
<br>
    No, I mean it really isn't that well supported.<br>
<br>
<br>
There's a buildbot that uses it, and people fix it if it breaks. (See e.g. this<br>
change.)<br>
<br>
(Note that I'm not particularly attached to the make build – if the llvm project<br>
decides to drop make and only keep cmake around, I wouldn't argue against that.<br>
But that hasn't happened yet.)<br>
</blockquote>
<br>
ISTR hearing discussion about there being difficulty getting CMake to use the just-built-clang to build compiler_rt. Until that's resolved, that kind of makes CMake dead in the water for cross builds...<br>
</blockquote>
<br></div></div>
This sounds a little suspect. LLVM/clang is compiled to run on the build host (a specific architecture), whereas runtime libraries are built by the user/middleware vendor to run on any one of many possible target machines (e.g. a mobile phone or dishwasher, requiring its own build environment, SDK, headers etc.)<br>
</blockquote><div><br></div><div>This was a real issue (for the overwhelming common case of building a non-cross-compiler), but has been solved for about a year, if memory serves.</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">

The fact they both have build systems or contain source code is incidental -- the latter is really just user data at the point the toolchain and no build system integration is possible. Perhaps CMake pulled in the wrong folder by mistake due to a bad SVN checkout?</blockquote>
<div><br></div><div>See this thread for some problems with removing the configure/make build system, that may or may not have been resolved:</div><div><br></div><div>  <a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022376.html">http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022376.html</a></div>
<div><br></div><div>and in particular:</div><div><br></div><div>  <a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022419.html">http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022419.html</a><br></div><div>
  <a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022558.html">http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022558.html</a><br></div><div>  <a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022426.html">http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022426.html</a><br>
</div><div>  <a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022432.html">http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022432.html</a><br></div><div><br></div><div>We also still list the configure/make build system as the canonical one in the 'getting started' guide:</div>
<div><br></div><div>  <a href="http://clang.llvm.org/get_started.html#build">http://clang.llvm.org/get_started.html#build</a><br></div><div><br></div><div>There is definitely consensus that we want to get rid of the configure/make build system eventually. Maybe the time has come to have that discussion again? The 3.5 release is approaching; if we want to include a release note saying "this is the last release that will have a configure-based build system", now would be the time.</div>
</div></div></div>