<div dir="ltr">I should point out a few more things about that script:<div><br></div><div>By this:</div><div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px">> ... and if so, downloads gcc 4.8.2 and installs it in the tot tree ...</span><br>
</div><div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px">I mean it will download the source and build the c and c++ compilers from source, not a prebuilt bundle.</span></div>
<div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px"><br></span></div><div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px">I build on an x86_64 Ubuntu 12.04 system, a 32-bit system is untested.</span></div>
<div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px"><br></span></div><div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px">If the directory specified by -c already exists, it leaves it there.  If no -c is specified, it uses the current directory as the root.  {root}/llvm is used for the llvm source tree (and for llvm/tools/clang and llvm/tools/lldb).  If those directories already exist, the -s option will do a git pull rather than a git clone.  The gcc code is unpacked to {root}/gcc-4.8.2, built in {root}/gcc-build, and installed into {root}/gcc.  llvm is built in {root}/final-build, and installed into {root}/final.  If the stage1 clang is used, it's built into {root}/stage1-build and installed into {root}/stage1.</span></div>
<div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px"><br></span></div><div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px">It's probably not appropriate as is for a serious dev workflow since the -s option is probably not what is wanted for managing work branches and the like; however, it is probably ok as a starting point for some kind of automated build script.</span></div>
<div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px"><br></span></div><div><span style="color:rgb(68,68,68);font-family:arial,helvetica,sans-serif;font-size:12.727272033691406px;line-height:21px">Hope that's helpful.</span></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Nov 25, 2013 at 2:14 PM, Todd Fiala <span dir="ltr"><<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">FWIW - here's the build script I used to build LLDB on Ubuntu 12.04:<div><br></div><div>First make sure you have the following packages installed:</div>
<div><span style="color:rgb(68,68,68);font-family:'courier new',monospace;font-size:13px;line-height:21px">sudo apt-get install build-essential gcc-multilib git libedit-dev libmpc-dev libmpfr-dev python-dev swig</span><br>

</div><div><span style="color:rgb(68,68,68);font-family:'courier new',monospace;font-size:13px;line-height:21px"><br></span></div><div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px">Uncompress the attached script to some directory in your path.  It's a python script with a few other python modules pulled in.</span></font></div>

<div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px"><br></span></font></div><div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px">Then run it with build-lldb.py -h to see the options.</span></font></div>

<div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px"><br></span></font></div><div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px">Typically I run it like so:</span></font></div>

<div><font face="courier new, monospace">cd {some_root_directory}</font></div><div><span style="font-family:'courier new',monospace;color:rgb(68,68,68);font-size:13px;line-height:21px">PYTHONUNBUFFERED=true build-lldb.py -s --base-compiler=gcc -c tot -j 16 -d 2>&1 | tee tot-build.log</span></div>

<div><span style="font-family:'courier new',monospace;color:rgb(68,68,68);font-size:13px;line-height:21px"><br></span></div><div><span style="color:rgb(68,68,68);font-size:13px;line-height:21px"><font face="arial, helvetica, sans-serif">This will do a ton of things.  It will create a directory called tot, download llvm, clang, lldb, check if your gcc is less than 4.8, and if so, downloads gcc 4.8.2 and installs it in the tot tree (no sudo access needed).  It then goes ahead and builds LLVM with gcc.  It will then install the built LLVM bits (including lldb) into tot/final.</font></span></div>

<div><span style="color:rgb(68,68,68);font-size:13px;line-height:21px"><font face="arial, helvetica, sans-serif"><br></font></span></div><div><span style="color:rgb(68,68,68);font-size:13px;line-height:21px"><font face="arial, helvetica, sans-serif">It has other options, like using a --stage1 to build a clang compiler from the current llvm tree using whatever the base compiler is, but since I haven't had much luck with getting that working, I am not promising it works since I hit an internal build error in clang building all of LLVM with the stage 1 clang. I'll eventually get back to that since I'd like to be able to build everything with the latest clang, particularly if we're doing work on debug info support.</font></span></div>

<div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px"><br></span></font></div><div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px">To run the LLDB you built, you'll need to include the gcc 4.8.2 path (tot/gcc/lib64) in your LD_LIBRARY_PATH so it picks up the newer libstdc++ built with gcc 4.8.2.</span></font></div>

<div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px"><br></span></font></div><div><font color="#444444" face="courier new, monospace"><span style="line-height:21px">cd {some_root_directory - from above}</span></font></div>

<div><font face="courier new, monospace"><span style="color:rgb(68,68,68);font-size:13px;line-height:21px">LD_LIBRARY_PATH=`pwd`/tot/gcc/lib64 tot/final/bin/lldb</span><font color="#444444"><span style="line-height:21px"><br>

</span></font></font></div><div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px"><br></span></font></div><div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px">If this ends up being a useful script for more, we can put it somewhere shared.  For now I'm just using it internally here.  I'm sure I'll continue to tweak it as we figure out our workflow over here (changing compilers, learn more about other ways of building that might make more sense, etc.).</span></font></div>

<div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px"><br></span></font></div><div><font color="#444444" face="arial, helvetica, sans-serif"><span style="line-height:21px">Let me know if that gets you further.</span></font></div>

</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Nov 25, 2013 at 1:48 PM, Ted Woodward <span dir="ltr"><<a href="mailto:ted.woodward@codeaurora.org" target="_blank">ted.woodward@codeaurora.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I pulled llvm/clang/lldb from sources today and tried compiling lldb using clang on Ubuntu 12.04. It failed with include file issues:<br>


<br>
…<br>
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/atomic:38:<br>
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/bits/c++0x_warning.h:32:2: error:<br>
      This file requires compiler and library support for the upcoming ISO C++<br>
      standard, C++0x. This support is currently experimental, and must be<br>
      enabled with the -std=c++0x or -std=gnu++0x compiler options.<br>
#error This file requires compiler and library support for the upcoming \<br>
<br>
…<br>
<br>
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/atomic:68:5: error:<br>
      unknown type name 'constexpr'<br>
    constexpr atomic_bool(bool __i) : _M_base(__i) { }<br>
<br>
atomic is in /usr/include/c++/4.6, and is included from llvm/tools/lldb/include/lldb/Utility/SharingPtr.h .<br>
<br>
Ted<br>
<br>
<br>
<br>
From: <a href="mailto:lldb-dev-bounces@cs.uiuc.edu" target="_blank">lldb-dev-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:lldb-dev-bounces@cs.uiuc.edu" target="_blank">lldb-dev-bounces@cs.uiuc.edu</a>] On Behalf Of Sylvestre Ledru<br>

Sent: Monday, November 25, 2013 7:57 AM<br>
To: <a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
Subject: Re: [lldb-dev] lldb 3.4 rc1 is failing with gcc 4.6<br>
<div><div><br>
On 25/11/2013 14:46, Sean Callanan wrote:<br>
Out of curiosity, are Clang and libc++ not options on these platforms?<br>
clang could be an option but we prefer to bootstrap with the recommended compiler (which is still gcc under Debian).<br>
About libc++, it has not been tested enough under Debian for now.<br>
<br>
<br>
 I don't have much recent experience outside Mac OS X but building with Clang and libc++ would ensure that you guys have as similar an environment to the one we use as possible...<br>
Well, I think that diversity is good and having the same base code compiled with different compiler and versions improve the quality of the software (even if here, it is a drawback :)<br>
<br>
Sylvestre<br>
<br>
<br>
</div></div><div><div>_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>