Ignore:
Timestamp:
03/16/2016 09:38:02 PM (8 years ago)
Author:
Pierre Labastie <pieere@…>
Branches:
10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 7.10, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, lazarus, lxqt, nosym, perl-modules, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, trunk, upgradedb, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
Children:
7686cb7
Parents:
a8a772b3
Message:

LLVM-3.7.2

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • general/prog/llvm.xml

    ra8a772b3 r3349c8e  
    77  <!ENTITY llvm-download-http "http://llvm.org/releases/&llvm-version;/llvm-&llvm-version;.src.tar.xz">
    88  <!ENTITY llvm-download-ftp  " ">
    9   <!ENTITY llvm-md5sum        "bf8b3a2c79e61212c5409041dfdbd319">
    10   <!ENTITY llvm-size          "14 MB">
    11   <!ENTITY llvm-buildsize     "1.6 GB (with Clang and tests)">
    12   <!ENTITY llvm-time          "13 SBU (with Clang, tests and parallelism = 4)">
     9  <!ENTITY llvm-md5sum        "07a7a74f3c6bd65de4702bf941b511a0">
     10  <!ENTITY llvm-size          "16 MB">
     11  <!ENTITY llvm-buildsize     "1.1 GB (with Clang, add 5.7GB for tests)">
     12  <!ENTITY llvm-time          "50 SBU (with Clang, add 15 SBU for tests)">
    1313
    1414  <!ENTITY clang-download-http "http://llvm.org/releases/&llvm-version;/cfe-&llvm-version;.src.tar.xz">
    15   <!ENTITY clang-md5sum        "0acd026b5529164197563d135a8fd83e">
    16   <!ENTITY clang-size          " 8.7 MB">
     15  <!ENTITY clang-md5sum        "cc99e7019bb74e6459e80863606250c5">
     16  <!ENTITY clang-size          " 9.2 MB">
    1717
    1818  <!ENTITY rt-version                "&llvm-version;">
    1919  <!ENTITY compiler-rt-download-http "http://llvm.org/releases/&rt-version;/compiler-rt-&rt-version;.src.tar.xz">
    20   <!ENTITY compiler-rt-md5sum        "1c6975daf30bb3b0473b53c3a1a6ff01">
     20  <!ENTITY compiler-rt-md5sum        "d6fcbe14352ffb708e4d1ac2e48bb025">
    2121  <!ENTITY compiler-rt-size          "1.2 MB">
    2222]>
     
    5656    </para>
    5757
     58<!--
    5859    <note>
    5960      <para>
     
    6465      </para>
    6566    </note>
    66 
     67-->
    6768    &lfs79_checked;
    6869
     
    145146    <bridgehead renderas="sect4">Recommended</bridgehead>
    146147    <para role="recommended">
    147       <xref linkend="libffi"/> and
     148<!-- autotools are obsolete and should not be used anymore. Cmake will be
     149     required for 3.9 -->
     150      <xref linkend="cmake"/>,
     151      <xref linkend="libffi"/>, and
    148152      <xref linkend="python2"/>
    149153    </para>
     
    151155    <bridgehead renderas="sect4">Optional</bridgehead>
    152156    <para role="optional">
    153       <xref linkend="cmake"/>,
    154157      <xref linkend="doxygen"/>,
    155158      <xref linkend="graphviz"/>,
     
    181184mv projects/compiler-rt-&rt-version;.src projects/compiler-rt</userinput></screen>
    182185
    183 <!-- Only for 3.7.0: hopefully fixed on later versions -->
     186<!-- For 3.7.0: Now fixed at version 3.8.0
    184187    <para>
    185188      The run-time library needs to be fixed for 32 bit installations:
     
    188191<screen><userinput>sed -r "/ifeq.*CompilerTargetArch/s#i386#i686#g" \
    189192    -i projects/compiler-rt/make/platform/clang_linux.mk</userinput></screen>
    190 
     193-->
    191194    <para>
    192195      Install <application>LLVM</application> by running the following
     
    194197    </para>
    195198
     199<!-- Not used in the build system
    196200<screen><userinput>sed -e "s:/docs/llvm:/share/doc/llvm-&llvm-version;:" \
    197201    -i Makefile.config.in &amp;&amp;
    198 
    199 mkdir -v build &amp;&amp;
     202-->
     203<screen><userinput>mkdir -v build &amp;&amp;
    200204cd       build &amp;&amp;
    201205
    202 CC=gcc CXX=g++                          \
    203 ../configure --prefix=/usr              \
    204              --datarootdir=/usr/share   \
    205              --sysconfdir=/etc          \
    206              --enable-libffi            \
    207              --enable-optimized         \
    208              --enable-shared            \
    209              --enable-targets=host,r600 \
    210              --disable-assertions       \
    211              --docdir=/usr/share/doc/llvm-&llvm-version; &amp;&amp;
     206CC=gcc CXX=g++                              \
     207cmake -DCMAKE_INSTALL_PREFIX=/usr           \
     208      -DLLVM_ENABLE_FFI=ON                  \
     209      -DCMAKE_BUILD_TYPE=Release            \
     210      -DBUILD_SHARED_LIBS=ON                \
     211      -DLLVM_TARGETS_TO_BUILD="host;AMDGPU" \
     212      -Wno-dev ..                           &amp;&amp;
    212213make</userinput></screen>
    213214
    214215    <para>
    215216      If you have installed <application>Sphinx</application> and wish
    216       to generate manual pages, issue the following command:
    217     </para>
    218 
     217      to generate the html documentation and manual pages, issue the
     218      following commands:
     219    </para>
     220<!-- The following command still works but let's try the next one
    219221<screen><userinput>make -C ../docs -f Makefile.sphinx man</userinput></screen>
    220 
    221     <para>
    222       To test the results, issue: <command>make -k check-all</command>.
    223       Some tests may fail for unknown reasons.
     222-->
     223<screen><userinput>cmake -DLLVM_ENABLE_SPHINX=ON         \
     224      -DSPHINX_WARNINGS_AS_ERRORS=OFF \
     225      -Wno-dev ..                     &amp;&amp;
     226make docs-llvm-html  docs-llvm-man</userinput></screen>
     227    <para>
     228      If you have downloaded the optional packages, the clang documentation
     229      can be built too:
     230    </para>
     231<screen><userinput>make docs-clang-html docs-clang-man</userinput></screen>
     232    <para>
     233<!-- all tests pass for version 3.8.0-->
     234      To test the results, issue: <command>make check-all</command>.
     235<!--      Some tests may fail for unknown reasons.-->
    224236    </para>
    225237
     
    228240    </para>
    229241
    230 <screen role="root"><userinput>make install &amp;&amp;
    231 
    232 for file in /usr/lib/lib{clang,LLVM,LTO}*.a
    233 do
    234   test -f $file &amp;&amp; chmod -v 644 $file
    235 done
    236 unset file</userinput></screen>
    237 
     242<screen role="root"><userinput>make install</userinput></screen>
     243
     244<!-- version 3.8.0: Clang-analyser is built and installed by default
    238245    <para>
    239246      If you had <xref linkend="python2"/> installed and you have
     
    257264mv -v   /usr/lib/clang-analyzer/scan-build/scan-build.1 \
    258265        /usr/share/man/man1/</userinput></screen>
    259 
    260     <para>
    261       If you have built manual pages, install them by running the
    262       following command as the
    263       <systemitem class="username">root</systemitem> user:
    264     </para>
    265 
    266 <screen role="root"><userinput>install -v -m644 ../docs/_build/man/* /usr/share/man/man1/</userinput></screen>
     266-->
     267    <para>
     268      If you have built  the documentation, install it by running the
     269      following command as the <systemitem class="username">root</systemitem>
     270      user:
     271    </para>
     272
     273<screen role="root"><userinput>install -v -m644 docs/man/* /usr/share/man/man1             &amp;&amp;
     274install -v -d -m755 /usr/share/doc/llvm-&llvm-version;/llvm-html     &amp;&amp;
     275cp -Rv docs/html/* /usr/share/doc/llvm-&llvm-version;/llvm-html</userinput></screen>
     276
     277    <para>
     278      The cmake documentation can be installed in the same way (again as the
     279      <systemitem class="username">root</systemitem> user):
     280    </para>
     281
     282<screen role="root"><userinput>install -v -m644 tools/clang/docs/man/* /usr/share/man/man1 &amp;&amp;
     283install -v -d -m755 /usr/share/doc/llvm-&llvm-version;/clang-html    &amp;&amp;
     284cp -Rv tools/clang/docs/html/* /usr/share/doc/llvm-&llvm-version;/clang-html</userinput></screen>
    267285
    268286  </sect2>
     
    271289    <title>Command Explanations</title>
    272290
     291<!--
    273292    <para>
    274293      <command>sed -e ... Makefile.config.in</command>: This sed fixes
    275294      location of the installed documentation.
    276295    </para>
    277 
    278     <para>
    279       <parameter>--enable-libffi</parameter>: This switch enables
     296-->
     297    <para>
     298      <parameter>-DLLVM_ENABLE-FFI=ON</parameter>: This switch enables
    280299      <application>LLVM</application> to use
    281300      <application>libffi</application>. Remove if you did not
     
    284303
    285304    <para>
    286       <parameter>--enable-optimized</parameter>: This switch enables
    287       compiler optimizations in order to speed up the code and reduce
    288       its size.
    289     </para>
    290 
    291     <para>
    292       <parameter>--enable-shared</parameter>: This switch enables
    293       building of the <application>LLVM</application> shared
    294       library which contains all of the static libraries linked into
    295       a single library.
    296     </para>
    297 
    298     <para>
    299       <parameter>--enable-targets=host,r600</parameter>: This switch enables
    300       building for the same target as the host, and also for the r600 AMD GPU
    301       used by the Mesa r600 and radeonsi drivers. Default is all. You can use
    302       a comma separated list. Valid targets are: host, x86, x86_64, sparc,
    303       powerpc, arm64, arm, aarch64, mips, hexagon, xcore, msp430, nvptx,
    304       systemz, r600, amdgpu (equivalent to r600), bpf, wasm, and cpp.
    305     </para>
    306 
    307     <para>
    308       <parameter>--disable-assertions</parameter>: Disable some compile checks,
    309       not necessary on a production system.
     305      <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch enables
     306      compiler optimizations in order to speed up the code and reduce its size.
     307      It also disables some compile checks, not necessary on a production
     308      system.
     309    </para>
     310
     311    <para>
     312      <parameter>-DBUILD_SHARED_LIBS=ON</parameter>: This switch enables
     313      building all the <application>LLVM</application> libraries as shared
     314      libraries instead of static.
     315    </para>
     316
     317    <para>
     318      <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU"</parameter>: This
     319      switch enables building for the same target as the host, and also for
     320      the r600 AMD GPU used by the Mesa r600 and radeonsi drivers. Default is
     321      all. You can use a semicolon separated list. Valid targets are: host,
     322      X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore, MSP430, NVPTX,
     323      SystemZ, AMDGPU, BPF, CppBackend, or all.
     324    </para>
     325
     326    <para>
     327      <option>-DLLVM_BUILD_LLVM_DYLIB=ON</option>: if used instead of
     328      <parameter>-DBUILD_SHARED_LIBS=ON</parameter>, builds libraries as
     329      static and links all of them into an unique shared one.
     330    </para>
     331
     332    <para>
     333      <option>-DLLVM_ENABLE_DOXYGEN</option>: Enables the generation of
     334      browsable HTML documentation if you have installed <xref
     335      linkend="doxygen"/>. You should run <command>make doxygen-html</command>
     336      afterwards, and install the generated documentation manually.
    310337    </para>
    311338
     
    322349      <seglistitem>
    323350        <seg>
    324           bugpoint, c-index-test, clang, clang++ (symlink), count, FileCheck,
    325           clang-check, clang-format, clang-tblgen, llc, lli, lli-child-target,
    326           llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov,
    327           llvm-cxxdump, llvm-diff, llvm-dis, llvm-dsymutil, llvm-dwarfdump,
    328           llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup, llvm-nm,
    329           llvm-objdump, llvm-pdbdump, llvm-profdata, llvm-ranlib (symlink),
    330           llvm-readobj, llvm-rtdyld, llvm-size, llvm-stress, llvm-symbolizer,
    331           llvm-tblgen, macho-dump, not, obj2yaml, opt, scan-build (symlink),
    332           scan-view (symlink), verify-uselistorder, and yaml2obj
     351          bugpoint, c-index-test, clang, clang++ (symlinks to
     352          clang-&lt;version&gt;), clang-&lt;version&gt;, clang-check,
     353          clang-format, git-clang-format,
     354          llc, lli, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov,
     355          llvm-c-test, llvm-cxxdump, llvm-diff, llvm-dis, llvm-dsymutil,
     356          llvm-dwarfdump, llvm-dwp, llvm-extract, llvm-lib (symlink to
     357          llvm-ar), llvm-link, llvm-lto, llvm-mc, llvm-mcmarkup, llvm-nm,
     358          llvm-objdump, llvm-pdbdump, llvm-profdata, llvm-ranlib (symlink to
     359          llvm-ar), llvm-readobj, llvm-rtdyld, llvm-size, llvm-split,
     360          llvm-stress, llvm-symbolizer, llvm-tblgen, obj2yaml, opt, san-cov,
     361          scan-build, scan-view, verify-uselistorder, and yaml2obj
    333362        </seg>
    334363        <seg>
    335           BugpointPasses.so, libclang.so, libLLVM-&llvm-version;.so,
    336           libLTO.so,<!-- libprofile_rt.so,--> LLVMHello.so and numerous
    337           static libraries in /usr/lib
     364          BugpointPasses.so, libclang*.so (21 libraries), libLLVM*.so (53
     365          libraries), libLTO.so, and LLVMHello.so
    338366        </seg>
    339367        <seg>
    340368          /usr/include/{clang,clang-c,llvm,llvm-c},
    341           /usr/lib/{clang,clang-analyzer}, and
    342           /usr/share/{doc/llvm-&llvm-version;,llvm}
     369          /usr/lib/clang, and
     370          /usr/share/{clang,llvm,scan-build,scan-view,doc/llvm-&llvm-version;}
    343371        </seg>
    344372      </seglistitem>
     
    375403      </varlistentry>
    376404
     405      <varlistentry id="clang-format">
     406        <term><command>clang-format</command></term>
     407        <listitem>
     408          <para>
     409            is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf
     410            code.
     411          </para>
     412          <indexterm zone="llvm clang-format">
     413            <primary sortas="b-clang-format">clang-format</primary>
     414          </indexterm>
     415        </listitem>
     416      </varlistentry>
     417
    377418      <varlistentry id="llc">
    378419        <term><command>llc</command></term>
     
    460501      </varlistentry>
    461502
     503      <varlistentry id="llvm-c-test">
     504        <term><command>llvm-c-test</command></term>
     505        <listitem>
     506          <para>
     507            is a bytecode disassembler.
     508          </para>
     509          <indexterm zone="llvm llvm-c-test">
     510            <primary sortas="b-llvm-c-test">llvm-c-test</primary>
     511          </indexterm>
     512        </listitem>
     513      </varlistentry>
     514
    462515      <varlistentry id="llvm-cxxdump">
    463516        <term><command>llvm-cxxdump</command></term>
     
    510563      </varlistentry>
    511564
     565      <varlistentry id="llvm-dwarfdump">
     566        <term><command>llvm-dwarfdump</command></term>
     567        <listitem>
     568          <para>
     569            prints the content of DWARF sections in object files.
     570          </para>
     571          <indexterm zone="llvm llvm-dwarfdump">
     572            <primary sortas="b-llvm-dwarfdump">llvm-dwarfdump</primary>
     573          </indexterm>
     574        </listitem>
     575      </varlistentry>
     576
     577      <varlistentry id="llvm-dwp">
     578        <term><command>llvm-dwp</command></term>
     579        <listitem>
     580          <para>
     581            merge split DWARF files.
     582          </para>
     583          <indexterm zone="llvm llvm-dwp">
     584            <primary sortas="b-llvm-dwp">llvm-dwp</primary>
     585          </indexterm>
     586        </listitem>
     587      </varlistentry>
     588
    512589      <varlistentry id="llvm-extract">
    513590        <term><command>llvm-extract</command></term>
     
    535612      </varlistentry>
    536613
     614      <varlistentry id="llvm-lto">
     615        <term><command>llvm-lto</command></term>
     616        <listitem>
     617          <para>
     618            is the <application>LLVM</application> LTO (link time optimization)
     619            linker.
     620          </para>
     621          <indexterm zone="llvm llvm-lto">
     622            <primary sortas="b-llvm-lto">llvm-lto</primary>
     623          </indexterm>
     624        </listitem>
     625      </varlistentry>
     626
     627      <varlistentry id="llvm-mc">
     628        <term><command>llvm-mc</command></term>
     629        <listitem>
     630          <para>
     631            is a standalone machine code assembler/disassembler.
     632          </para>
     633          <indexterm zone="llvm llvm-mc">
     634            <primary sortas="b-llvm-mc">llvm-mc</primary>
     635          </indexterm>
     636        </listitem>
     637      </varlistentry>
     638
    537639      <varlistentry id="llvm-nm">
    538640        <term><command>llvm-nm</command></term>
     
    548650      </varlistentry>
    549651
     652      <varlistentry id="llvm-objdump">
     653        <term><command>llvm-objdump</command></term>
     654        <listitem>
     655          <para>
     656            is an <application>LLVM</application> object file dumper.
     657          </para>
     658          <indexterm zone="llvm llvm-objdump">
     659            <primary sortas="b-llvm-objdump">llvm-objdump</primary>
     660          </indexterm>
     661        </listitem>
     662      </varlistentry>
     663
    550664      <varlistentry id="llvm-pdbdump">
    551665        <term><command>llvm-pdbdump</command></term>
     
    559673        </listitem>
    560674      </varlistentry>
    561 <!--
    562       <varlistentry id="llvm-prof">
    563         <term><command>llvm-prof</command></term>
    564         <listitem>
    565           <para>
    566             is used to print execution profile of
    567             <application>LLVM</application> program.
    568           </para>
    569           <indexterm zone="llvm llvm-prof">
    570             <primary sortas="b-llvm-prof">llvm-prof</primary>
    571           </indexterm>
    572         </listitem>
    573       </varlistentry>-->
     675
     676      <varlistentry id="llvm-profdata">
     677        <term><command>llvm-profdata</command></term>
     678        <listitem>
     679          <para>
     680            is a small tool to manipulate and print profile data files.
     681          </para>
     682          <indexterm zone="llvm llvm-profdata">
     683            <primary sortas="b-llvm-profdata">llvm-profdata</primary>
     684          </indexterm>
     685        </listitem>
     686      </varlistentry>
    574687
    575688      <varlistentry id="llvm-ranlib">
     
    586699      </varlistentry>
    587700
     701      <varlistentry id="llvm-readobj">
     702        <term><command>llvm-readobj</command></term>
     703        <listitem>
     704          <para>
     705            displays low-level format-specific information about object files.
     706          </para>
     707          <indexterm zone="llvm llvm-readobj">
     708            <primary sortas="b-llvm-readobj">llvm-readobj</primary>
     709          </indexterm>
     710        </listitem>
     711      </varlistentry>
     712
     713      <varlistentry id="llvm-rtdyld">
     714        <term><command>llvm-rtdyld</command></term>
     715        <listitem>
     716          <para>
     717            <application>LLVM</application> MC-JIT tool.
     718          </para>
     719          <indexterm zone="llvm llvm-rtdyld">
     720            <primary sortas="b-llvm-rtdyld">llvm-rtdyld</primary>
     721          </indexterm>
     722        </listitem>
     723      </varlistentry>
     724
     725      <varlistentry id="llvm-size">
     726        <term><command>llvm-size</command></term>
     727        <listitem>
     728          <para>
     729            <application>LLVM</application> object size dumper.
     730          </para>
     731          <indexterm zone="llvm llvm-size">
     732            <primary sortas="b-llvm-size">llvm-size</primary>
     733          </indexterm>
     734        </listitem>
     735      </varlistentry>
     736
     737      <varlistentry id="llvm-split">
     738        <term><command>llvm-split</command></term>
     739        <listitem>
     740          <para>
     741            <application>LLVM</application> module splitter.
     742          </para>
     743          <indexterm zone="llvm llvm-split">
     744            <primary sortas="b-llvm-split">llvm-split</primary>
     745          </indexterm>
     746        </listitem>
     747      </varlistentry>
     748
    588749      <varlistentry id="llvm-stress">
    589750        <term><command>llvm-stress</command></term>
     
    599760      </varlistentry>
    600761
     762      <varlistentry id="llvm-symbolizer">
     763        <term><command>llvm-symbolizer</command></term>
     764        <listitem>
     765          <para>
     766            converts adresses into source code locations.
     767          </para>
     768          <indexterm zone="llvm llvm-symbolizer">
     769            <primary sortas="b-llvm-symbolizer">llvm-symbolizer</primary>
     770          </indexterm>
     771        </listitem>
     772      </varlistentry>
     773
    601774      <varlistentry id="llvm-tblgen">
    602775        <term><command>llvm-tblgen</command></term>
     
    637810      </varlistentry>
    638811
     812      <varlistentry id="sancov">
     813        <term><command>sancov</command></term>
     814        <listitem>
     815          <para>
     816            sanitizer coverage processing tool.
     817          </para>
     818          <indexterm zone="llvm sancov">
     819            <primary sortas="b-sancov">sancov</primary>
     820          </indexterm>
     821        </listitem>
     822      </varlistentry>
     823
    639824      <varlistentry id="scan-build">
    640825        <term><command>scan-build</command></term>
     
    650835      </varlistentry>
    651836
     837      <varlistentry id="scan-view">
     838        <term><command>scan-view</command></term>
     839        <listitem>
     840          <para>
     841            is a viewer for <application>Clang</application> static analyzer
     842            results.
     843          </para>
     844          <indexterm zone="llvm scan-view">
     845            <primary sortas="b-scan-view">scan-view</primary>
     846          </indexterm>
     847        </listitem>
     848      </varlistentry>
     849
     850      <varlistentry id="verify-uselistorder">
     851        <term><command>verify-uselistorder</command></term>
     852        <listitem>
     853          <para>
     854            is the <application>LLVM</application> tool to verify use-list
     855            order.
     856          </para>
     857          <indexterm zone="llvm verify-uselistorder">
     858            <primary sortas="b-verify-uselistorder">verify-uselistorder</primary>
     859          </indexterm>
     860        </listitem>
     861      </varlistentry>
     862
    652863      <varlistentry id="yaml2obj">
    653864        <term><command>yaml2obj</command></term>
     
    662873        </listitem>
    663874      </varlistentry>
    664 
     875<!--
    665876      <varlistentry id="libllvm">
    666877        <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
     
    674885        </listitem>
    675886      </varlistentry>
    676 <!--
     887
    677888      <varlistentry id="libprofile_rt">
    678889        <term><filename class="libraryfile">libprofile_rt.so</filename></term>
Note: See TracChangeset for help on using the changeset viewer.