<div dir="ltr">How about building this in the CMake or auto* level we build a separate build script for it? I attache a simple version here. It does seem to work here. It's a shell script, which uses cmake for the building but it seems the second stage file works. I am not really sure why a third stage is needed, but it can be added quite easily. A windows version should be trivial to write (next week).<div>

<br></div><div>A few rants about clang:</div><div>This is the first time I was able to bootstrap the whole compiler. Which is great, don't get me wrong. But it was painfully slow, and the CPU of my machine became *really* hot unlike with gcc. The whole building process took more then 4 hours on this old cual core machine, while stage one took an hour more or less (I need to do a test again, without ccache).</div>

<div><br></div><div><div><font class="Apple-style-span" face="'courier new', monospace">[elcuco@pinky ~/src/llvm] ls bootstrap-stage-2/bin/ -ltr</font></div><div><font class="Apple-style-span" face="'courier new', monospace">total 262708</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  5641794 2010-04-19 03:12 tblgen</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco   985416 2010-04-19 04:41 FileCheck</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco     6374 2010-04-19 04:41 count</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco   122992 2010-04-19 04:41 not</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco    24101 2010-04-19 05:34 llvm-config</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco 18325933 2010-04-19 05:36 opt</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  7705301 2010-04-19 05:36 llvm-as</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  6671138 2010-04-19 05:36 llvm-dis</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco 31626605 2010-04-19 05:37 llvm-mc</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco 32630459 2010-04-19 05:38 llc</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  6814656 2010-04-19 05:38 llvm-ranlib</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  6875243 2010-04-19 05:38 llvm-ar</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  6827605 2010-04-19 05:38 llvm-nm</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco 14608549 2010-04-19 05:39 llvm-ld</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  7506306 2010-04-19 05:39 llvm-prof</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  8310633 2010-04-19 05:39 llvm-link</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco 25527057 2010-04-19 05:40 lli</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  8217315 2010-04-19 05:40 llvm-extract</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco 18994379 2010-04-19 05:42 bugpoint</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco  1011333 2010-04-19 05:43 llvm-bcanalyzer</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco     6468 2010-04-19 05:43 llvm-stub</font></div><div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco    42747 2010-04-19 07:28 c-index-test</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">-rwxrwxr-x. 1 elcuco elcuco 60447800 2010-04-19 07:29 clang</font></div><div><font class="Apple-style-span" face="'courier new', monospace">lrwxrwxrwx. 1 elcuco elcuco       51 2010-04-19 07:29 clang++ -> /home/elcuco/src/llvm/bootstrap-stage-2/bin/./clang</font></div>

<div><br></div></div><div><div><br><div class="gmail_quote">On Fri, Apr 16, 2010 at 12:27 AM, Lacey, Mark <span dir="ltr"><<a href="mailto:mark.lacey@intel.com">mark.lacey@intel.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="im">> We want to make Clang great, and we need your help!<br>
<br>
</div>Doug,<br>
<br>
I don't see any type of selfbuild target in the LLVM top level makefile.<br>
This would be a useful way to automate the self build process.<br>
<br>
I've used similar mechanisms before on other compilers, where you can<br>
trivially invoke a three phase build (first you do a full build with your<br>
system compiler, then you use your built compiler to do another full build,<br>
and then take that most recent build compiler to build yet again...). The<br>
build options of the last two phases are identical, and the object files<br>
from those last two passes are compared to ensure that they are identical.<br>
<br>
Ideally you can control the build options of the initial build and last two<br>
builds independently (e.g. build a compiler without optimizations and with<br>
assertions, and then do the last two builds with assertions disabled, and<br>
optimizations on) - I'm not sure how easy this is with the autoconfig based<br>
system LLVM/clang use, if at all.<br>
<font color="#888888"><br>
Mark<br>
<br>
</font><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div></div></div>