Changeset abdc2e6


Ignore:
Timestamp:
12/30/2012 06:28:02 PM (9 years ago)
Author:
Krejzi <krejzi@…>
Branches:
10.0, 10.1, 11.0, 7.10, 7.4, 7.5, 7.6, 7.6-blfs, 7.6-systemd, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, gnome, kde5-13430, kde5-14269, kde5-14686, krejzi/svn, nosym, perl-modules, qt5new, systemd-11177, systemd-13485, trunk, xry111/git-date, xry111/git-date-for-trunk, xry111/git-date-test
Children:
a3dca06
Parents:
4f9d1df6
Message:

LLVM/Clang/Compiler RT 3.2.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@10906 af4574ff-66df-0310-9fd7-8a98e5e911e0

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • general.ent

    r4f9d1df6 rabdc2e6  
    401401<!ENTITY junit-version                "4.10">
    402402<!ENTITY librep-version               "0.92.2.1">
    403 <!ENTITY llvm-version                 "3.1">
     403<!ENTITY llvm-version                 "3.2">
    404404<!ENTITY mercurial-version            "2.3.2">
    405405<!ENTITY NASM-version                 "2.10.05">
  • general/prog/llvm.xml

    r4f9d1df6 rabdc2e6  
    66
    77  <!ENTITY llvm-download-http "http://llvm.org/releases/&llvm-version;/llvm-&llvm-version;.src.tar.gz">
    8   <!ENTITY llvm-download-ftp " ">
    9   <!ENTITY llvm-md5sum "16eaa7679f84113f65b12760fdfe4ee1">
    10   <!ENTITY llvm-size "10.6 MB">
    11   <!ENTITY llvm-buildsize "670 MB">
    12   <!ENTITY llvm-time "13.0 SBU (add about 7 SBU for clang)">
     8  <!ENTITY llvm-download-ftp  " ">
     9  <!ENTITY llvm-md5sum        "71610289bbc819e3e15fdd562809a2d7">
     10  <!ENTITY llvm-size          "12 MB">
     11  <!ENTITY llvm-buildsize     "800 MB">
     12  <!ENTITY llvm-time          "13.0 SBU (Additional 7.0 SBU for Clang)">
     13
     14  <!ENTITY clang-download-http "http://llvm.org/releases/&llvm-version;/clang-&llvm-version;.src.tar.gz">
     15  <!ENTITY clang-md5sum        "3896ef4334df08563b05d0848ba80582">
     16  <!ENTITY clang-size          "8.4 MB">
     17
     18  <!ENTITY compiler-rt-download-http "http://llvm.org/releases/&llvm-version;/compiler-rt-&llvm-version;.src.tar.gz">
     19  <!ENTITY compiler-rt-md5sum        "a9a30ccd7bbee6f68a3ca3020af0d852">
     20  <!ENTITY compiler-rt-size          "1.4 MB">
    1321]>
    1422
    15 <sect1 id="llvm" xreflabel="llvm-&llvm-version;">
     23<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
    1624  <?dbhtml filename="llvm.html" ?>
    1725
     
    3038    <title>Introduction to LLVM</title>
    3139
    32     <para>The <application>llvm</application> package contains a collection of
    33     modular and reusable compiler and toolchain technologies. The Low Level
    34     Virtual MAchine (LLVM)  Core libraries provide a modern source- and
    35     target-independent optimizer, along with code generation support for many
    36     popular CPUs (as well as some less common ones!) These libraries are built
    37     around a well specified code representation known as the LLVM intermediate
    38     representation ("LLVM IR").</para>
    39 
    40     <para>The optional <application>clang</application> package provides a
    41     new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.</para>
     40    <para>
     41      The <application>LLVM</application> package contains a collection of modular and
     42      reusable compiler and toolchain technologies. The Low Level Virtual Machine
     43      (LLVM) Core libraries provide a modern source and target-independent optimizer,
     44      along with code generation support for many popular CPUs (as well as some less
     45      common ones!). These libraries are built around a well specified code
     46      representation known as the LLVM intermediate representation ("LLVM IR").
     47    </para>
     48
     49    <para>
     50      The optional <application>Clang</application> and <application>Compiler RT</application>
     51      packages provide a new C, C++, Objective C and Objective C++ front-ends and runtime
     52      libraries for the <application>LLVM</application>.
     53    </para>
    4254
    4355    &lfs72_checked;
     
    4658    <itemizedlist spacing="compact">
    4759      <listitem>
    48         <para>Download (HTTP): <ulink url="&llvm-download-http;"/></para>
    49       </listitem>
    50       <listitem>
    51         <para>Download (FTP): <ulink url="&llvm-download-ftp;"/></para>
    52       </listitem>
    53       <listitem>
    54         <para>Download MD5 sum: &llvm-md5sum;</para>
    55       </listitem>
    56       <listitem>
    57         <para>Download size: &llvm-size;</para>
    58       </listitem>
    59       <listitem>
    60         <para>Estimated disk space required: &llvm-buildsize;</para>
    61       </listitem>
    62       <listitem>
    63         <para>Estimated build time: &llvm-time;</para>
     60        <para>
     61          Download (HTTP): <ulink url="&llvm-download-http;"/>
     62        </para>
     63      </listitem>
     64      <listitem>
     65        <para>
     66          Download (FTP): <ulink url="&llvm-download-ftp;"/>
     67        </para>
     68      </listitem>
     69      <listitem>
     70        <para>
     71          Download MD5 sum: &llvm-md5sum;
     72        </para>
     73      </listitem>
     74      <listitem>
     75        <para>
     76          Download size: &llvm-size;
     77        </para>
     78      </listitem>
     79      <listitem>
     80        <para>
     81          Estimated disk space required: &llvm-buildsize;
     82        </para>
     83      </listitem>
     84      <listitem>
     85        <para>
     86          Estimated build time: &llvm-time;
     87        </para>
    6488      </listitem>
    6589    </itemizedlist>
    6690
    6791    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
    68     <itemizedlist spacing='compact'>
    69       <listitem>
    70         <para>Optional package:
    71           <ulink url="http://llvm.org/releases/&llvm-version;/clang-&llvm-version;.src.tar.gz"/>
     92    <itemizedlist spacing="compact">
     93      <listitem>
     94        <para>
     95          Required patch:
     96          <ulink url="&patch-root;/llvm-&llvm-version;-blfs_paths-1.patch"/>
     97        </para>
     98      </listitem>
     99    </itemizedlist>
     100
     101    <bridgehead renderas="sect3">Optional Downloads</bridgehead>
     102    <itemizedlist spacing="compact">
     103      <listitem>
     104        <para>
     105          Clang Download (HTTP): <ulink url="&clang-download-http;"/>
     106        </para>
     107      </listitem>
     108      <listitem>
     109        <para>
     110          Clang Download MD5 sum: &clang-md5sum;
     111        </para>
     112      </listitem>
     113      <listitem>
     114        <para>
     115          Clang Download size: &clang-size;
     116        </para>
     117      </listitem>
     118      <listitem>
     119        <para>
     120          Compiler RT Download (HTTP): <ulink url="&compiler-rt-download-http;"/>
     121        </para>
     122      </listitem>
     123      <listitem>
     124        <para>
     125          Compiler RT Download MD5 sum: &compiler-rt-md5sum;
     126        </para>
     127      </listitem>
     128      <listitem>
     129        <para>
     130          Compiler RT Download size: &compiler-rt-size;
    72131        </para>
    73132      </listitem>
     
    78137    <bridgehead renderas="sect4">Recommended</bridgehead>
    79138    <para role="recommended">
    80        <xref linkend="libffi"/>
     139      <xref linkend="libffi"/>
    81140    </para>
    82141
    83142    <bridgehead renderas="sect4">Optional</bridgehead>
    84143    <para role="optional">
    85        <xref linkend="doxygen"/> and
    86        <xref linkend="graphviz"/>
     144      <xref linkend="doxygen"/>,
     145      <xref linkend="graphviz"/>,
     146      <xref linkend="libxml2"/>,
     147      <xref linkend="zip"/>,
     148      <ulink url="http://www.ocaml.org/">OCaml</ulink>,
     149      <ulink url="http://pypi.python.org/pypi/Sphinx">Sphinx</ulink> and
     150      <ulink url="http://www.valgrind.org/">Valgrind</ulink>
    87151    </para>
    88152
    89153    <para condition="html" role="usernotes">User Notes:
    90     <ulink url="&blfs-wiki;/llvm"/></para>
    91 
     154      <ulink url="&blfs-wiki;/llvm"/>
     155    </para>
    92156  </sect2>
    93157
     
    95159    <title>Installation of LLVM</title>
    96160
    97     <para>If you downloaded the optional <application>clang</application> package,
    98     install it into the source tree:</para>
     161    <para>
     162      If you have downloaded the optional packages, install them into
     163      the source tree by running the following commands:
     164    </para>
    99165
    100166<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.gz -C tools &amp;&amp;
    101 mv tools/clang-&llvm-version;.src tools/clang</userinput></screen>
    102 
    103     <para>Install <application>llvm</application> by running the following
    104     commands:</para>
    105 
    106 <screen><userinput>CC=gcc                                 \
    107 CXX=g++                                \
     167tar -xf ../compiler-rt-&llvm-version;.src.tar.gz -C projects &amp;&amp;
     168
     169mv tools/clang-&llvm-version;.src tools/clang &amp;&amp;
     170mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt &amp;&amp;
     171
     172sed -e "s@../lib/libprofile_rt.a@../lib/llvm/libprofile_rt.a@g" \
     173    -i tools/clang/lib/Driver/Tools.cpp</userinput></screen>
     174
     175    <para>
     176      Install <application>LLVM</application> by running the following
     177      commands:
     178    </para>
     179
     180<screen><userinput>patch -Np1 -i ../llvm-&llvm-version;-blfs_paths-1.patch &amp;&amp;
     181CC=gcc CXX=g++                         \
    108182./configure --prefix=/usr              \
     183            --sysconfdir=/etc          \
    109184            --libdir=/usr/lib/llvm     \
    110             --sysconfdir=/etc          \
     185            --enable-libffi            \
     186            --enable-optimized         \
    111187            --enable-shared            \
    112             --enable-libffi            \
    113188            --enable-targets=all       \
    114             --disable-expensive-checks \
     189            --disable-assertions      \
    115190            --disable-debug-runtime    \
    116             --disable-assertions       \
    117             --enable-optimized        &amp;&amp;
    118 
     191            --disable-expensive-checks &amp;&amp;
    119192make</userinput></screen>
    120193
    121     <para>To test the results, issue: <command>make check</command>.</para>
    122 
    123     <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
    124 
    125 <screen role="root"><userinput>make install</userinput></screen>
     194    <para>
     195      If you have installed <application>Sphinx</application> and wish
     196      to generate manual pages, issue the following command:
     197    </para>
     198
     199<screen><userinput>make -C docs -f Makefile.sphinx man</userinput></screen>
     200
     201    <para>
     202      To test the results, issue: <command>make check</command>.
     203    </para>
     204
     205    <para>
     206      Now, as the <systemitem class="username">root</systemitem> user:
     207    </para>
     208
     209<screen role="root"><userinput>make install &amp;&amp;
     210chmod -v 644 /usr/lib/llvm/*.a &amp;&amp;
     211echo /usr/lib/llvm &gt;&gt; /etc/ld.so.conf &amp;&amp;
     212ldconfig</userinput></screen>
     213
     214    <para>
     215      If you have built manual pages, install them by running the
     216      following command as the
     217      <systemitem class="username">root</systemitem> user:
     218    </para>
     219
     220<screen role="root"><userinput>install -m644 docs/_build/man/* /usr/share/man/man1</userinput></screen>
    126221
    127222  </sect2>
    128 <!--
    129   <sect2 role="commands">
    130     <title>Command Explanations</title>
    131 
    132     <para><userinput>sed ... Makefile.config.in</userinput>: This fixes
    133     installation directories.</para>
    134 
    135     <para><userinput>sed ... Makefile.rules</userinput>: This fixes an insecure
    136     rpath that points to the build directory.</para>
    137 
    138   </sect2>
    139 -->
     223
    140224  <sect2 role="content">
    141225    <title>Contents</title>
     
    147231
    148232      <seglistitem>
    149         <seg>clang, clang++, and numerous llvm-* build tools</seg>
    150         <seg>numerous custom libraries to support llvm and clang programs</seg>
    151         <seg>/usr/lib/{clang,llvm}, /usr/share/doc/llvm</seg>
     233        <seg>
     234          bugpoint, c-index-test, clang, clang++, clang-check, clang-tblgen, llc, lli,
     235          llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov, llvm-diff, llvm-dis,
     236          llvm-dwarfdump, llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup, llvm-nm,
     237          llvm-objdump, llvm-prof, llvm-ranlib, llvm-readobj, llvm-rtdyld, llvm-size,
     238          llvm-stress, llvm-tblgen, macho-dump and opt
     239        </seg>
     240        <seg>
     241          libclang.so, libLLVM-&llvm-version;.so, libprofile_rt.so
     242          and numerous libraries in /usr/lib/llvm
     243        </seg>
     244        <seg>
     245          /usr/include/clang,
     246          /usr/include/clang-c,
     247          /usr/include/llvm,
     248          /usr/include/llvm-c,
     249          /usr/lib/clang,
     250          /usr/lib/llvm and
     251          /usr/share/doc/llvm
     252        </seg>
    152253      </seglistitem>
    153254    </segmentedlist>
    154 <!--
     255
    155256    <variablelist>
    156257      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
     
    158259      <?dbhtml list-presentation="table"?>
    159260
    160       <varlistentry id="rep">
    161         <term><command>rep</command></term>
    162         <listitem>
    163           <para>is the Lisp interpreter.</para>
    164           <indexterm zone="llvm rep">
    165             <primary sortas="b-rep">rep</primary>
    166           </indexterm>
    167         </listitem>
    168       </varlistentry>
    169 
    170       <varlistentry id="llvm-lib">
    171         <term><filename class='libraryfile'>llvm.so</filename></term>
    172         <listitem>
    173           <para> contains the functions necessary for the Lisp interpreter.</para>
    174           <indexterm zone="llvm llvm-lib">
    175             <primary sortas="c-llvm">llvm.so</primary>
     261      <varlistentry id="bugpoint">
     262        <term><command>bugpoint</command></term>
     263        <listitem>
     264          <para>
     265            is the automatic test case reduction tool.
     266          </para>
     267          <indexterm zone="llvm bugpoint">
     268            <primary sortas="b-bugpoint">bugpoint</primary>
     269          </indexterm>
     270        </listitem>
     271      </varlistentry>
     272
     273      <varlistentry id="clang">
     274        <term><command>clang</command></term>
     275        <listitem>
     276          <para>
     277            is the <application>Clang</application> C, C++,
     278            and Objective-C compiler.
     279          </para>
     280          <indexterm zone="llvm clang">
     281            <primary sortas="b-clang">clang</primary>
     282          </indexterm>
     283        </listitem>
     284      </varlistentry>
     285
     286      <varlistentry id="llc">
     287        <term><command>llc</command></term>
     288        <listitem>
     289          <para>
     290            is the <application>LLVM</application> static compiler.
     291          </para>
     292          <indexterm zone="llvm llc">
     293            <primary sortas="b-llc">llc</primary>
     294          </indexterm>
     295        </listitem>
     296      </varlistentry>
     297
     298      <varlistentry id="lli">
     299        <term><command>lli</command></term>
     300        <listitem>
     301          <para>
     302            is used to directly execute programs from
     303            <application>LLVM</application> bitcode.
     304          </para>
     305          <indexterm zone="llvm lli">
     306            <primary sortas="b-lli">lli</primary>
     307          </indexterm>
     308        </listitem>
     309      </varlistentry>
     310
     311      <varlistentry id="llvm-ar">
     312        <term><command>llvm-ar</command></term>
     313        <listitem>
     314          <para>
     315            is the <application>LLVM</application> archiver.
     316          </para>
     317          <indexterm zone="llvm llvm-ar">
     318            <primary sortas="b-llvm-ar">llvm-ar</primary>
     319          </indexterm>
     320        </listitem>
     321      </varlistentry>
     322
     323      <varlistentry id="llvm-as">
     324        <term><command>llvm-as</command></term>
     325        <listitem>
     326          <para>
     327            is the <application>LLVM</application> assembler.
     328          </para>
     329          <indexterm zone="llvm llvm-as">
     330            <primary sortas="b-llvm-as">llvm-as</primary>
     331          </indexterm>
     332        </listitem>
     333      </varlistentry>
     334
     335      <varlistentry id="llvm-bcanalyzer">
     336        <term><command>llvm-bcanalyzer</command></term>
     337        <listitem>
     338          <para>
     339            is the <application>LLVM</application> bitcode analyzer.
     340          </para>
     341          <indexterm zone="llvm llvm-bcanalyzer">
     342            <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
     343          </indexterm>
     344        </listitem>
     345      </varlistentry>
     346
     347      <varlistentry id="llvm-config">
     348        <term><command>llvm-config</command></term>
     349        <listitem>
     350          <para>
     351            Prints <application>LLVM</application> compilation options.
     352          </para>
     353          <indexterm zone="llvm llvm-config">
     354            <primary sortas="b-llvm-config">llvm-config</primary>
     355          </indexterm>
     356        </listitem>
     357      </varlistentry>
     358
     359      <varlistentry id="llvm-cov">
     360        <term><command>llvm-cov</command></term>
     361        <listitem>
     362          <para>
     363            is used to emit coverage information.
     364          </para>
     365          <indexterm zone="llvm llvm-cov">
     366            <primary sortas="b-llvm-cov">llvm-cov</primary>
     367          </indexterm>
     368        </listitem>
     369      </varlistentry>
     370
     371      <varlistentry id="llvm-diff">
     372        <term><command>llvm-diff</command></term>
     373        <listitem>
     374          <para>
     375            is the <application>LLVM</application> structural
     376            '<command>diff</command>'.
     377          </para>
     378          <indexterm zone="llvm llvm-diff">
     379            <primary sortas="b-llvm-diff">llvm-diff</primary>
     380          </indexterm>
     381        </listitem>
     382      </varlistentry>
     383
     384      <varlistentry id="llvm-dis">
     385        <term><command>llvm-dis</command></term>
     386        <listitem>
     387          <para>
     388            is the <application>LLVM</application> disassembler.
     389          </para>
     390          <indexterm zone="llvm llvm-dis">
     391            <primary sortas="b-llvm-dis">llvm-dis</primary>
     392          </indexterm>
     393        </listitem>
     394      </varlistentry>
     395
     396      <varlistentry id="llvm-extract">
     397        <term><command>llvm-extract</command></term>
     398        <listitem>
     399          <para>
     400            is used to extract a function from an
     401            <application>LLVM</application> module.
     402          </para>
     403          <indexterm zone="llvm llvm-extract">
     404            <primary sortas="b-llvm-extract">llvm-extract</primary>
     405          </indexterm>
     406        </listitem>
     407      </varlistentry>
     408
     409      <varlistentry id="llvm-link">
     410        <term><command>llvm-link</command></term>
     411        <listitem>
     412          <para>
     413            is the <application>LLVM</application> linker.
     414          </para>
     415          <indexterm zone="llvm llvm-link">
     416            <primary sortas="b-llvm-link">llvm-link</primary>
     417          </indexterm>
     418        </listitem>
     419      </varlistentry>
     420
     421      <varlistentry id="llvm-nm">
     422        <term><command>llvm-nm</command></term>
     423        <listitem>
     424          <para>
     425            is used to list <application>LLVM</application> bitcode
     426            and object file's symbol table.
     427          </para>
     428          <indexterm zone="llvm llvm-nm">
     429            <primary sortas="b-llvm-nm">llvm-nm</primary>
     430          </indexterm>
     431        </listitem>
     432      </varlistentry>
     433
     434      <varlistentry id="llvm-prof">
     435        <term><command>llvm-prof</command></term>
     436        <listitem>
     437          <para>
     438            is used to print execution profile of
     439            <application>LLVM</application> program.
     440          </para>
     441          <indexterm zone="llvm llvm-prof">
     442            <primary sortas="b-llvm-prof">llvm-prof</primary>
     443          </indexterm>
     444        </listitem>
     445      </varlistentry>
     446
     447      <varlistentry id="llvm-ranlib">
     448        <term><command>llvm-ranlib</command></term>
     449        <listitem>
     450          <para>
     451            is used to generate index for <application>LLVM</application>
     452            archive.
     453          </para>
     454          <indexterm zone="llvm llvm-ranlib">
     455            <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
     456          </indexterm>
     457        </listitem>
     458      </varlistentry>
     459
     460      <varlistentry id="llvm-stress">
     461        <term><command>llvm-stress</command></term>
     462        <listitem>
     463          <para>
     464            is used to generate random
     465            <filename class="extension">.ll</filename> files.
     466          </para>
     467          <indexterm zone="llvm llvm-stress">
     468            <primary sortas="b-llvm-stress">llvm-stress</primary>
     469          </indexterm>
     470        </listitem>
     471      </varlistentry>
     472
     473      <varlistentry id="llvm-tblgen">
     474        <term><command>llvm-tblgen</command></term>
     475        <listitem>
     476          <para>
     477            is the <application>LLVM</application> Target Description
     478            To C++ Code Generator.
     479          </para>
     480          <indexterm zone="llvm llvm-tblgen">
     481            <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
     482          </indexterm>
     483        </listitem>
     484      </varlistentry>
     485
     486      <varlistentry id="opt">
     487        <term><command>opt</command></term>
     488        <listitem>
     489          <para>
     490            is the <application>LLVM</application> optimizer.
     491          </para>
     492          <indexterm zone="llvm opt">
     493            <primary sortas="b-opt">opt</primary>
     494          </indexterm>
     495        </listitem>
     496      </varlistentry>
     497
     498      <varlistentry id="libllvm">
     499        <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
     500        <listitem>
     501          <para>
     502            contains the <application>LLVM</application> API functions.
     503          </para>
     504          <indexterm zone="llvm libllvm">
     505            <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
     506          </indexterm>
     507        </listitem>
     508      </varlistentry>
     509
     510      <varlistentry id="libprofile_rt">
     511        <term><filename class="libraryfile">libprofile_rt.so</filename></term>
     512        <listitem>
     513          <para>
     514            is the C, C++ and Objective-C runtime library for
     515            <application>Clang</application>.
     516          </para>
     517          <indexterm zone="llvm libprofile_rt">
     518            <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
    176519          </indexterm>
    177520        </listitem>
     
    179522
    180523    </variablelist>
    181 -->
     524
    182525  </sect2>
    183526
  • introduction/welcome/changelog.xml

    r4f9d1df6 rabdc2e6  
    115115        <listitem>
    116116          <para>[krejzi] - libtasn1 3.2.</para>
     117        </listitem>
     118        <listitem>
     119          <para>[krejzi] - LLVM 3.2.</para>
    117120        </listitem>
    118121        <listitem>
  • x/installing/mesalib.xml

    r4f9d1df6 rabdc2e6  
    291291    <para>
    292292      <option>--enable-osmesa</option>: This switch enables building of
    293       the <filename class="library">libOSMesa</filename> library.
     293      the <filename class="libraryfile">libOSMesa</filename> library.
    294294    </para>
    295295
Note: See TracChangeset for help on using the changeset viewer.