[blfs-book] r10906 - in trunk/BOOK: . general/prog introduction/welcome x/installing

krejzi at linuxfromscratch.org krejzi at linuxfromscratch.org
Sun Dec 30 10:28:07 PST 2012


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 at ../lib/libprofile_rt.a at ../lib/llvm/libprofile_rt.a at 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>




More information about the blfs-book mailing list