Author: krejzi Date: 2012-12-30 11:28:02 -0700 (Sun, 30 Dec 2012) New Revision: 10906
Modified: trunk/BOOK/general.ent trunk/BOOK/general/prog/llvm.xml trunk/BOOK/introduction/welcome/changelog.xml trunk/BOOK/x/installing/mesalib.xml Log: LLVM/Clang/Compiler RT 3.2. Modified: trunk/BOOK/general/prog/llvm.xml =================================================================== --- trunk/BOOK/general/prog/llvm.xml 2012-12-30 16:49:18 UTC (rev 10905) +++ trunk/BOOK/general/prog/llvm.xml 2012-12-30 18:28:02 UTC (rev 10906) @@ -5,14 +5,22 @@ %general-entities; <!ENTITY llvm-download-http "http://llvm.org/releases/&llvm-version;/llvm-&llvm-version;.src.tar.gz"> - <!ENTITY llvm-download-ftp " "> - <!ENTITY llvm-md5sum "16eaa7679f84113f65b12760fdfe4ee1"> - <!ENTITY llvm-size "10.6 MB"> - <!ENTITY llvm-buildsize "670 MB"> - <!ENTITY llvm-time "13.0 SBU (add about 7 SBU for clang)"> + <!ENTITY llvm-download-ftp " "> + <!ENTITY llvm-md5sum "71610289bbc819e3e15fdd562809a2d7"> + <!ENTITY llvm-size "12 MB"> + <!ENTITY llvm-buildsize "800 MB"> + <!ENTITY llvm-time "13.0 SBU (Additional 7.0 SBU for Clang)"> + + <!ENTITY clang-download-http "http://llvm.org/releases/&llvm-version;/clang-&llvm-version;.src.tar.gz"> + <!ENTITY clang-md5sum "3896ef4334df08563b05d0848ba80582"> + <!ENTITY clang-size "8.4 MB"> + + <!ENTITY compiler-rt-download-http "http://llvm.org/releases/&llvm-version;/compiler-rt-&llvm-version;.src.tar.gz"> + <!ENTITY compiler-rt-md5sum "a9a30ccd7bbee6f68a3ca3020af0d852"> + <!ENTITY compiler-rt-size "1.4 MB"> ]> -<sect1 id="llvm" xreflabel="llvm-&llvm-version;"> +<sect1 id="llvm" xreflabel="LLVM-&llvm-version;"> <?dbhtml filename="llvm.html" ?> <sect1info> @@ -29,114 +37,190 @@ <sect2 role="package"> <title>Introduction to LLVM</title> - <para>The <application>llvm</application> package contains a collection of - modular and reusable compiler and toolchain technologies. The Low Level - Virtual MAchine (LLVM) Core libraries provide a modern source- and - target-independent optimizer, along with code generation support for many - popular CPUs (as well as some less common ones!) These libraries are built - around a well specified code representation known as the LLVM intermediate - representation ("LLVM IR").</para> + <para> + The <application>LLVM</application> package contains a collection of modular and + reusable compiler and toolchain technologies. The Low Level Virtual Machine + (LLVM) Core libraries provide a modern source and target-independent optimizer, + along with code generation support for many popular CPUs (as well as some less + common ones!). These libraries are built around a well specified code + representation known as the LLVM intermediate representation ("LLVM IR"). + </para> - <para>The optional <application>clang</application> package provides a - new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.</para> + <para> + The optional <application>Clang</application> and <application>Compiler RT</application> + packages provide a new C, C++, Objective C and Objective C++ front-ends and runtime + libraries for the <application>LLVM</application>. + </para> &lfs72_checked; <bridgehead renderas="sect3">Package Information</bridgehead> <itemizedlist spacing="compact"> <listitem> - <para>Download (HTTP): <ulink url="&llvm-download-http;"/></para> + <para> + Download (HTTP): <ulink url="&llvm-download-http;"/> + </para> </listitem> <listitem> - <para>Download (FTP): <ulink url="&llvm-download-ftp;"/></para> + <para> + Download (FTP): <ulink url="&llvm-download-ftp;"/> + </para> </listitem> <listitem> - <para>Download MD5 sum: &llvm-md5sum;</para> + <para> + Download MD5 sum: &llvm-md5sum; + </para> </listitem> <listitem> - <para>Download size: &llvm-size;</para> + <para> + Download size: &llvm-size; + </para> </listitem> <listitem> - <para>Estimated disk space required: &llvm-buildsize;</para> + <para> + Estimated disk space required: &llvm-buildsize; + </para> </listitem> <listitem> - <para>Estimated build time: &llvm-time;</para> + <para> + Estimated build time: &llvm-time; + </para> </listitem> </itemizedlist> <bridgehead renderas="sect3">Additional Downloads</bridgehead> - <itemizedlist spacing='compact'> + <itemizedlist spacing="compact"> <listitem> - <para>Optional package: - <ulink url="http://llvm.org/releases/&llvm-version;/clang-&llvm-version;.src.tar.gz"/> + <para> + Required patch: + <ulink url="&patch-root;/llvm-&llvm-version;-blfs_paths-1.patch"/> </para> </listitem> </itemizedlist> + <bridgehead renderas="sect3">Optional Downloads</bridgehead> + <itemizedlist spacing="compact"> + <listitem> + <para> + Clang Download (HTTP): <ulink url="&clang-download-http;"/> + </para> + </listitem> + <listitem> + <para> + Clang Download MD5 sum: &clang-md5sum; + </para> + </listitem> + <listitem> + <para> + Clang Download size: &clang-size; + </para> + </listitem> + <listitem> + <para> + Compiler RT Download (HTTP): <ulink url="&compiler-rt-download-http;"/> + </para> + </listitem> + <listitem> + <para> + Compiler RT Download MD5 sum: &compiler-rt-md5sum; + </para> + </listitem> + <listitem> + <para> + Compiler RT Download size: &compiler-rt-size; + </para> + </listitem> + </itemizedlist> + <bridgehead renderas="sect3">LLVM Dependencies</bridgehead> <bridgehead renderas="sect4">Recommended</bridgehead> <para role="recommended"> - <xref linkend="libffi"/> + <xref linkend="libffi"/> </para> <bridgehead renderas="sect4">Optional</bridgehead> <para role="optional"> - <xref linkend="doxygen"/> and - <xref linkend="graphviz"/> + <xref linkend="doxygen"/>, + <xref linkend="graphviz"/>, + <xref linkend="libxml2"/>, + <xref linkend="zip"/>, + <ulink url="http://www.ocaml.org/">OCaml</ulink>, + <ulink url="http://pypi.python.org/pypi/Sphinx">Sphinx</ulink> and + <ulink url="http://www.valgrind.org/">Valgrind</ulink> </para> <para condition="html" role="usernotes">User Notes: - <ulink url="&blfs-wiki;/llvm"/></para> - + <ulink url="&blfs-wiki;/llvm"/> + </para> </sect2> <sect2 role="installation"> <title>Installation of LLVM</title> - <para>If you downloaded the optional <application>clang</application> package, - install it into the source tree:</para> + <para> + If you have downloaded the optional packages, install them into + the source tree by running the following commands: + </para> <screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.gz -C tools && -mv tools/clang-&llvm-version;.src tools/clang</userinput></screen> +tar -xf ../compiler-rt-&llvm-version;.src.tar.gz -C projects && - <para>Install <application>llvm</application> by running the following - commands:</para> +mv tools/clang-&llvm-version;.src tools/clang && +mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt && -<screen><userinput>CC=gcc \ -CXX=g++ \ +sed -e "s@../lib/libprofile_rt.a@../lib/llvm/libprofile_rt.a@g" \ + -i tools/clang/lib/Driver/Tools.cpp</userinput></screen> + + <para> + Install <application>LLVM</application> by running the following + commands: + </para> + +<screen><userinput>patch -Np1 -i ../llvm-&llvm-version;-blfs_paths-1.patch && +CC=gcc CXX=g++ \ ./configure --prefix=/usr \ + --sysconfdir=/etc \ --libdir=/usr/lib/llvm \ - --sysconfdir=/etc \ + --enable-libffi \ + --enable-optimized \ --enable-shared \ - --enable-libffi \ --enable-targets=all \ - --disable-expensive-checks \ + --disable-assertions \ --disable-debug-runtime \ - --disable-assertions \ - --enable-optimized && - + --disable-expensive-checks && make</userinput></screen> - <para>To test the results, issue: <command>make check</command>.</para> + <para> + If you have installed <application>Sphinx</application> and wish + to generate manual pages, issue the following command: + </para> - <para>Now, as the <systemitem class="username">root</systemitem> user:</para> +<screen><userinput>make -C docs -f Makefile.sphinx man</userinput></screen> -<screen role="root"><userinput>make install</userinput></screen> + <para> + To test the results, issue: <command>make check</command>. + </para> - </sect2> -<!-- - <sect2 role="commands"> - <title>Command Explanations</title> + <para> + Now, as the <systemitem class="username">root</systemitem> user: + </para> - <para><userinput>sed ... Makefile.config.in</userinput>: This fixes - installation directories.</para> +<screen role="root"><userinput>make install && +chmod -v 644 /usr/lib/llvm/*.a && +echo /usr/lib/llvm >> /etc/ld.so.conf && +ldconfig</userinput></screen> - <para><userinput>sed ... Makefile.rules</userinput>: This fixes an insecure - rpath that points to the build directory.</para> + <para> + If you have built manual pages, install them by running the + following command as the + <systemitem class="username">root</systemitem> user: + </para> +<screen role="root"><userinput>install -m644 docs/_build/man/* /usr/share/man/man1</userinput></screen> + </sect2> ---> + <sect2 role="content"> <title>Contents</title> @@ -146,39 +230,298 @@ <segtitle>Installed Directories</segtitle> <seglistitem> - <seg>clang, clang++, and numerous llvm-* build tools</seg> - <seg>numerous custom libraries to support llvm and clang programs</seg> - <seg>/usr/lib/{clang,llvm}, /usr/share/doc/llvm</seg> + <seg> + bugpoint, c-index-test, clang, clang++, clang-check, clang-tblgen, llc, lli, + llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov, llvm-diff, llvm-dis, + llvm-dwarfdump, llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup, llvm-nm, + llvm-objdump, llvm-prof, llvm-ranlib, llvm-readobj, llvm-rtdyld, llvm-size, + llvm-stress, llvm-tblgen, macho-dump and opt + </seg> + <seg> + libclang.so, libLLVM-&llvm-version;.so, libprofile_rt.so + and numerous libraries in /usr/lib/llvm + </seg> + <seg> + /usr/include/clang, + /usr/include/clang-c, + /usr/include/llvm, + /usr/include/llvm-c, + /usr/lib/clang, + /usr/lib/llvm and + /usr/share/doc/llvm + </seg> </seglistitem> </segmentedlist> -<!-- + <variablelist> <bridgehead renderas="sect3">Short Descriptions</bridgehead> <?dbfo list-presentation="list"?> <?dbhtml list-presentation="table"?> - <varlistentry id="rep"> - <term><command>rep</command></term> + <varlistentry id="bugpoint"> + <term><command>bugpoint</command></term> <listitem> - <para>is the Lisp interpreter.</para> - <indexterm zone="llvm rep"> - <primary sortas="b-rep">rep</primary> + <para> + is the automatic test case reduction tool. + </para> + <indexterm zone="llvm bugpoint"> + <primary sortas="b-bugpoint">bugpoint</primary> </indexterm> </listitem> </varlistentry> - <varlistentry id="llvm-lib"> - <term><filename class='libraryfile'>llvm.so</filename></term> + <varlistentry id="clang"> + <term><command>clang</command></term> <listitem> - <para> contains the functions necessary for the Lisp interpreter.</para> - <indexterm zone="llvm llvm-lib"> - <primary sortas="c-llvm">llvm.so</primary> + <para> + is the <application>Clang</application> C, C++, + and Objective-C compiler. + </para> + <indexterm zone="llvm clang"> + <primary sortas="b-clang">clang</primary> </indexterm> </listitem> </varlistentry> + <varlistentry id="llc"> + <term><command>llc</command></term> + <listitem> + <para> + is the <application>LLVM</application> static compiler. + </para> + <indexterm zone="llvm llc"> + <primary sortas="b-llc">llc</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="lli"> + <term><command>lli</command></term> + <listitem> + <para> + is used to directly execute programs from + <application>LLVM</application> bitcode. + </para> + <indexterm zone="llvm lli"> + <primary sortas="b-lli">lli</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-ar"> + <term><command>llvm-ar</command></term> + <listitem> + <para> + is the <application>LLVM</application> archiver. + </para> + <indexterm zone="llvm llvm-ar"> + <primary sortas="b-llvm-ar">llvm-ar</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-as"> + <term><command>llvm-as</command></term> + <listitem> + <para> + is the <application>LLVM</application> assembler. + </para> + <indexterm zone="llvm llvm-as"> + <primary sortas="b-llvm-as">llvm-as</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-bcanalyzer"> + <term><command>llvm-bcanalyzer</command></term> + <listitem> + <para> + is the <application>LLVM</application> bitcode analyzer. + </para> + <indexterm zone="llvm llvm-bcanalyzer"> + <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-config"> + <term><command>llvm-config</command></term> + <listitem> + <para> + Prints <application>LLVM</application> compilation options. + </para> + <indexterm zone="llvm llvm-config"> + <primary sortas="b-llvm-config">llvm-config</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-cov"> + <term><command>llvm-cov</command></term> + <listitem> + <para> + is used to emit coverage information. + </para> + <indexterm zone="llvm llvm-cov"> + <primary sortas="b-llvm-cov">llvm-cov</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-diff"> + <term><command>llvm-diff</command></term> + <listitem> + <para> + is the <application>LLVM</application> structural + '<command>diff</command>'. + </para> + <indexterm zone="llvm llvm-diff"> + <primary sortas="b-llvm-diff">llvm-diff</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-dis"> + <term><command>llvm-dis</command></term> + <listitem> + <para> + is the <application>LLVM</application> disassembler. + </para> + <indexterm zone="llvm llvm-dis"> + <primary sortas="b-llvm-dis">llvm-dis</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-extract"> + <term><command>llvm-extract</command></term> + <listitem> + <para> + is used to extract a function from an + <application>LLVM</application> module. + </para> + <indexterm zone="llvm llvm-extract"> + <primary sortas="b-llvm-extract">llvm-extract</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-link"> + <term><command>llvm-link</command></term> + <listitem> + <para> + is the <application>LLVM</application> linker. + </para> + <indexterm zone="llvm llvm-link"> + <primary sortas="b-llvm-link">llvm-link</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-nm"> + <term><command>llvm-nm</command></term> + <listitem> + <para> + is used to list <application>LLVM</application> bitcode + and object file's symbol table. + </para> + <indexterm zone="llvm llvm-nm"> + <primary sortas="b-llvm-nm">llvm-nm</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-prof"> + <term><command>llvm-prof</command></term> + <listitem> + <para> + is used to print execution profile of + <application>LLVM</application> program. + </para> + <indexterm zone="llvm llvm-prof"> + <primary sortas="b-llvm-prof">llvm-prof</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-ranlib"> + <term><command>llvm-ranlib</command></term> + <listitem> + <para> + is used to generate index for <application>LLVM</application> + archive. + </para> + <indexterm zone="llvm llvm-ranlib"> + <primary sortas="b-llvm-ranlib">llvm-ranlib</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-stress"> + <term><command>llvm-stress</command></term> + <listitem> + <para> + is used to generate random + <filename class="extension">.ll</filename> files. + </para> + <indexterm zone="llvm llvm-stress"> + <primary sortas="b-llvm-stress">llvm-stress</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="llvm-tblgen"> + <term><command>llvm-tblgen</command></term> + <listitem> + <para> + is the <application>LLVM</application> Target Description + To C++ Code Generator. + </para> + <indexterm zone="llvm llvm-tblgen"> + <primary sortas="b-llvm-tblgen">llvm-tblgen</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="opt"> + <term><command>opt</command></term> + <listitem> + <para> + is the <application>LLVM</application> optimizer. + </para> + <indexterm zone="llvm opt"> + <primary sortas="b-opt">opt</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="libllvm"> + <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term> + <listitem> + <para> + contains the <application>LLVM</application> API functions. + </para> + <indexterm zone="llvm libllvm"> + <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="libprofile_rt"> + <term><filename class="libraryfile">libprofile_rt.so</filename></term> + <listitem> + <para> + is the C, C++ and Objective-C runtime library for + <application>Clang</application>. + </para> + <indexterm zone="llvm libprofile_rt"> + <primary sortas="c-libprofile_rt">libprofile_rt.so</primary> + </indexterm> + </listitem> + </varlistentry> + </variablelist> ---> + </sect2> </sect1> Modified: trunk/BOOK/general.ent =================================================================== --- trunk/BOOK/general.ent 2012-12-30 16:49:18 UTC (rev 10905) +++ trunk/BOOK/general.ent 2012-12-30 18:28:02 UTC (rev 10906) @@ -400,7 +400,7 @@ <!ENTITY openjdk-version "1.7.0.9"> <!ENTITY junit-version "4.10"> <!ENTITY librep-version "0.92.2.1"> -<!ENTITY llvm-version "3.1"> +<!ENTITY llvm-version "3.2"> <!ENTITY mercurial-version "2.3.2"> <!ENTITY NASM-version "2.10.05"> <!ENTITY php-version "5.4.8"> Modified: trunk/BOOK/introduction/welcome/changelog.xml =================================================================== --- trunk/BOOK/introduction/welcome/changelog.xml 2012-12-30 16:49:18 UTC (rev 10905) +++ trunk/BOOK/introduction/welcome/changelog.xml 2012-12-30 18:28:02 UTC (rev 10906) @@ -116,6 +116,9 @@ <para>[krejzi] - libtasn1 3.2.</para> </listitem> <listitem> + <para>[krejzi] - LLVM 3.2.</para> + </listitem> + <listitem> <para>[krejzi] - Pango 1.32.5.</para> </listitem> <listitem> Modified: trunk/BOOK/x/installing/mesalib.xml =================================================================== --- trunk/BOOK/x/installing/mesalib.xml 2012-12-30 16:49:18 UTC (rev 10905) +++ trunk/BOOK/x/installing/mesalib.xml 2012-12-30 18:28:02 UTC (rev 10906) @@ -290,7 +290,7 @@ <para> <option>--enable-osmesa</option>: This switch enables building of - the <filename class="library">libOSMesa</filename> library. + the <filename class="libraryfile">libOSMesa</filename> library. </para> <para> -- http://linuxfromscratch.org/mailman/listinfo/blfs-book FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page
