source: general/prog/llvm.xml@ fbaad54

lazarus trunk
Last change on this file since fbaad54 was 2c7e9c4f, checked in by Pierre Labastie <pierre.labastie@…>, 3 months ago

LLVM: create /etc/clang before populating it

  • Property mode set to 100644
File size: 62.9 KB
RevLine 
[ab4fdfc]1<?xml version="1.0" encoding="UTF-8"?>
[7b74537e]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
[563e0d6]7 <!ENTITY llvm-url "https://github.com/llvm/llvm-project/releases/download/llvmorg-&llvm-version;">
8
9 <!ENTITY llvm-download-http "&llvm-url;/llvm-&llvm-version;.src.tar.xz">
[abdc2e6]10 <!ENTITY llvm-download-ftp " ">
[670ac4fc]11 <!ENTITY llvm-md5sum "aaaf9cd983c775a11f18ee9b9713edb4">
12 <!ENTITY llvm-size "60 MB">
[32ced17]13 <!ENTITY llvm-buildsize "4.2 GB (964 MB installed; add 20 GB for tests and 308 MB for documentation)">
[55fb76ba]14 <!ENTITY llvm-time "13 SBU (Add 8 SBU for tests; both using parallelism=8)">
[a6221fd]15
[81210e4]16 <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
[670ac4fc]17 <!ENTITY clang-md5sum "1d4b452265bda9f570d1aa2499815f5a">
18 <!ENTITY clang-size "22 MB">
[a6221fd]19
[563e0d6]20 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
[670ac4fc]21 <!ENTITY compiler-rt-md5sum "745326564d64300874cbf3be602cd459">
[32ced17]22 <!ENTITY compiler-rt-size "2.4 MB">
[9a599135]23
[b30ce9b]24 <!-- CMake modules and third party dependencies renamed and uploaded
25 onto anduin to avoid stupid file names. -->
26
[32ced17]27 <!ENTITY cmake-llvm-download-http "&sources-anduin-http;/llvm/llvm-cmake-&llvm-maj-version;.src.tar.xz">
[670ac4fc]28 <!ENTITY cmake-llvm-md5sum "bf2ad617d47ce40fe77c0e5c26b1fe43">
[32ced17]29 <!ENTITY cmake-llvm-size "12 KB">
[b30ce9b]30
[32ced17]31 <!ENTITY llvm-3rdparty-download-http "&sources-anduin-http;/llvm/llvm-third-party-&llvm-maj-version;.src.tar.xz">
[670ac4fc]32 <!ENTITY llvm-3rdparty-md5sum "5ebac19868c66cdac8b87077faefd38c">
33 <!ENTITY llvm-3rdparty-size "396 KB">
[7b74537e]34]>
35
[abdc2e6]36<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
[7b74537e]37 <?dbhtml filename="llvm.html" ?>
38
39
40 <title>LLVM-&llvm-version;</title>
41
42 <indexterm zone="llvm">
43 <primary sortas="a-LLVM">LLVM</primary>
44 </indexterm>
45
46 <sect2 role="package">
47 <title>Introduction to LLVM</title>
48
[abdc2e6]49 <para>
[a6221fd]50 The <application>LLVM</application> package contains a collection of
51 modular and reusable compiler and toolchain technologies. The Low Level
52 Virtual Machine (LLVM) Core libraries provide a modern source and
53 target-independent optimizer, along with code generation support for many
54 popular CPUs (as well as some less common ones!). These libraries are
55 built around a well specified code representation known as the LLVM
56 intermediate representation ("LLVM IR").
[abdc2e6]57 </para>
[f36bebcd]58
[abdc2e6]59 <para>
[74762a5]60 <application>Clang</application> provides new C, C++, Objective C
61 and Objective C++ front-ends for <application>LLVM</application> and is
62 required by some desktop packages such as <application>firefox</application>
63 and for <application>rust</application> if that is built using the system
64 <application>LLVM</application>.
65 </para>
66
67 <para>
68 The <application>Compiler RT</application> package provides
69 runtime sanitizer and profiling libraries for developers who use
70 <application>Clang</application> and <application>LLVM</application>.
[abdc2e6]71 </para>
[7b74537e]72
[b9874725]73 &lfs121_checked;
[7b74537e]74
75 <bridgehead renderas="sect3">Package Information</bridgehead>
76 <itemizedlist spacing="compact">
77 <listitem>
[abdc2e6]78 <para>
79 Download (HTTP): <ulink url="&llvm-download-http;"/>
80 </para>
[7b74537e]81 </listitem>
82 <listitem>
[abdc2e6]83 <para>
84 Download (FTP): <ulink url="&llvm-download-ftp;"/>
85 </para>
[7b74537e]86 </listitem>
87 <listitem>
[abdc2e6]88 <para>
89 Download MD5 sum: &llvm-md5sum;
90 </para>
[7b74537e]91 </listitem>
92 <listitem>
[abdc2e6]93 <para>
94 Download size: &llvm-size;
95 </para>
[7b74537e]96 </listitem>
97 <listitem>
[abdc2e6]98 <para>
99 Estimated disk space required: &llvm-buildsize;
100 </para>
[7b74537e]101 </listitem>
102 <listitem>
[abdc2e6]103 <para>
104 Estimated build time: &llvm-time;
105 </para>
[7b74537e]106 </listitem>
107 </itemizedlist>
108
[9a599135]109 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
[754f4c6d]110 <para>
111 <emphasis role="strong">Cmake modules for LLVM</emphasis>
112 </para>
113 <itemizedlist spacing="compact">
114 <listitem>
115 <para>
116 Download: <ulink url="&cmake-llvm-download-http;"/>
117 </para>
118 </listitem>
119 <listitem>
120 <para>
121 Download MD5 sum: &cmake-llvm-md5sum;
122 </para>
123 </listitem>
124 <listitem>
125 <para>
126 Download size: &cmake-llvm-size;
127 </para>
128 </listitem>
129 </itemizedlist>
[9a599135]130
[b30ce9b]131 <para>
132 <emphasis role="strong">Third-party dependencies for LLVM build system</emphasis>
133 </para>
134 <itemizedlist spacing="compact">
135 <listitem>
136 <para>
137 Download: <ulink url="&llvm-3rdparty-download-http;"/>
138 </para>
139 </listitem>
140 <listitem>
141 <para>
142 Download MD5 sum: &llvm-3rdparty-md5sum;
143 </para>
144 </listitem>
145 <listitem>
146 <para>
147 Download size: &llvm-3rdparty-size;
148 </para>
149 </listitem>
150 </itemizedlist>
[3f6a6dc]151
[b30ce9b]152
[74762a5]153 <bridgehead renderas="sect3">Recommended Download</bridgehead>
[754f4c6d]154 <para>
155 <emphasis role="strong">Clang</emphasis>
156 </para>
157 <itemizedlist spacing="compact">
158 <listitem>
159 <para>
160 Download: <ulink url="&clang-download-http;"/>
161 </para>
162 </listitem>
163 <listitem>
164 <para>
165 Download MD5 sum: &clang-md5sum;
166 </para>
167 </listitem>
168 <listitem>
169 <para>
170 Download size: &clang-size;
171 </para>
172 </listitem>
173 </itemizedlist>
[70251fc]174
[74762a5]175 <bridgehead renderas="sect3">Optional Download</bridgehead>
[754f4c6d]176 <para>
177 <emphasis role="strong">Compiler RT</emphasis>
178 </para>
179 <itemizedlist spacing="compact">
180 <listitem>
181 <para>
182 Download: <ulink url="&compiler-rt-download-http;"/>
183 </para>
184 </listitem>
185 <listitem>
186 <para>
187 Download MD5 sum: &compiler-rt-md5sum;
188 </para>
189 </listitem>
190 <listitem>
191 <para>
192 Download size: &compiler-rt-size;
193 </para>
194 </listitem>
195 </itemizedlist>
[7b74537e]196 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
197
[7b3f441]198 <bridgehead renderas="sect4">Required</bridgehead>
199 <para role="required">
[2ee8145]200 <xref linkend="cmake"/>
[f36bebcd]201 </para>
202
[7b74537e]203 <bridgehead renderas="sect4">Optional</bridgehead>
204 <para role="optional">
[abdc2e6]205 <xref linkend="doxygen"/>,
[2ee8145]206 <xref linkend="git"/>,
[abdc2e6]207 <xref linkend="graphviz"/>,
208 <xref linkend="libxml2"/>,
[c5e3c1c]209 <xref linkend="pygments"/>,
[a96b7ae]210 <xref linkend="rsync"/> (for tests),
[ddf66964]211 <xref linkend="recommonmark"/> (for building documentation),
[2d98031c]212 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
[a6221fd]213 <xref linkend="valgrind"/>,
[d21c6551]214 <xref linkend="PyYAML"/>, <!-- for yaml2obj -->
[abdc2e6]215 <xref linkend="zip"/>,
[11eb3ae5]216 <ulink url="https://ocaml.org/">OCaml</ulink>,
[9a599135]217 <ulink url="https://pypi.org/project/psutil/">psutil</ulink> (for tests),
[ddf66964]218 and <ulink url="https://github.com/Z3Prover/z3">Z3</ulink>
[7b74537e]219 </para>
220
221 </sect2>
222
223 <sect2 role="installation">
224 <title>Installation of LLVM</title>
225
[a7b21cc]226 <para>
[b30ce9b]227 Two additional tarballs
[32ced17]228 <filename>llvm-cmake-&llvm-maj-version;.src.tar.xz</filename> and
229 <filename>llvm-third-party-&llvm-maj-version;.src.tar.xz</filename> are
[b30ce9b]230 needed by LLVM building system. The upstream expects them extracted
231 at the same level as the
232 <filename>llvm-&llvm-version;.src.tar.xz</filename> tarball,
233 and the extracted directories renamed to
234 <filename class="directory">cmake</filename> and
235 <filename class="directory">third-party</filename>. Extract them and
236 modify the build system to avoid creating ambiguously-named
237 directories outside the
[a7b21cc]238 <filename>llvm-&llvm-version;.src</filename> hierarchy:
239 </para>
[9a599135]240
[32ced17]241<screen><userinput>tar -xf ../llvm-cmake-&llvm-maj-version;.src.tar.xz &amp;&amp;
242tar -xf ../llvm-third-party-&llvm-maj-version;.src.tar.xz &amp;&amp;
243sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@llvm-cmake-&llvm-maj-version;.src@' \
244 -i CMakeLists.txt &amp;&amp;
245sed '/LLVM_THIRD_PARTY_DIR/s@../third-party@llvm-third-party-&llvm-maj-version;.src@' \
[b30ce9b]246 -i cmake/modules/HandleLLVMOptions.cmake</userinput></screen>
[bceef3d]247
[abdc2e6]248 <para>
[74762a5]249 Install <application>clang</application> into
[abdc2e6]250 the source tree by running the following commands:
251 </para>
[f36bebcd]252
[74762a5]253<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.xz -C tools &amp;&amp;
[005af62c]254mv tools/clang-&llvm-version;.src tools/clang</userinput></screen>
[74762a5]255
256 <para>
257 If you have downloaded <application>compiler-rt</application>,
[670ac4fc]258 install it into the source tree by running the following commands:
[74762a5]259 </para>
[f36bebcd]260
[32ced17]261<screen><userinput>tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
[670ac4fc]262mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
[bd4f0143]263
[bf5fb94]264 <para>
265 There are many Python scripts in this package which use
266 <command>/usr/bin/env python</command> to access the system Python
[b9c353b]267 which on LFS is <xref linkend="python3"/>. Use the following command
[bf5fb94]268 to fix these scripts:
269 </para>
270
271<screen><userinput>grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'</userinput></screen>
[5a8c6008]272
[abdc2e6]273 <para>
274 Install <application>LLVM</application> by running the following
275 commands:
276 </para>
277
[3349c8e]278<screen><userinput>mkdir -v build &amp;&amp;
[b3b7e36]279cd build &amp;&amp;
280
[c39ddc6]281CC=gcc CXX=g++ \
282cmake -DCMAKE_INSTALL_PREFIX=/usr \
283 -DLLVM_ENABLE_FFI=ON \
284 -DCMAKE_BUILD_TYPE=Release \
285 -DLLVM_BUILD_LLVM_DYLIB=ON \
286 -DLLVM_LINK_LLVM_DYLIB=ON \
287 -DLLVM_ENABLE_RTTI=ON \
288 -DLLVM_TARGETS_TO_BUILD="host;AMDGPU" \
289 -DLLVM_BINUTILS_INCDIR=/usr/include \
290 -DLLVM_INCLUDE_BENCHMARKS=OFF \
[670ac4fc]291 -DLLVM_VERSION_SUFFIX= \
[c39ddc6]292 -DCLANG_DEFAULT_PIE_ON_LINUX=ON \
[670ac4fc]293 -DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang \
[c39ddc6]294 -Wno-dev -G Ninja .. &amp;&amp;
[18a65e61]295ninja</userinput></screen>
[7b74537e]296
[a42c273]297 <para>
[ddf66964]298 If you have installed <xref linkend="recommonmark"/> and its
299 dependencies, you can generate the html documentation and manual
300 pages with the following commands:
[a42c273]301 </para>
302
[bf5fb94]303<screen remap="doc"><userinput>cmake -DLLVM_BUILD_DOCS=ON \
304 -DLLVM_ENABLE_SPHINX=ON \
[a42c273]305 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
306 -Wno-dev -G Ninja .. &amp;&amp;
307ninja docs-llvm-html docs-llvm-man</userinput></screen>
308
309 <para>
[74762a5]310 The clang documentation can be built too:
[a42c273]311 </para>
312
313<screen remap="doc"><userinput>ninja docs-clang-html docs-clang-man</userinput></screen>
314
[f6b87643]315 <!-- https://github.com/llvm/llvm-project/issues/39012 -->
316 <para>
317 If you wish to run the tests, remove a test case known to hang
318 indefinitely on some systems:
319 </para>
320
321 <screen remap='test'><userinput>rm -f ../projects/compiler-rt/test/tsan/getline_nohang.cpp</userinput></screen>
322
[403aae58]323 <!-- The excessive core dump made my system irresponsive. -->
324 <para>
325 LLVM test suite can produce many core dump files. They will occupy
326 a large amount of disk space, and the core dump process can
327 significantly slow down the testing. To test the results with core
328 dump disabled, <phrase revision='systemd'>ensure
[5c01736c]329 <xref linkend='systemd'/> and <xref linkend='shadow'/> have
330 been rebuilt with <xref linkend='linux-pam'/> support (if you are
331 interacting via a SSH or graphical session, also ensure the
332 <xref linkend='openssh'/> server or the desktop manager has been
333 built with <xref linkend='linux-pam'/>) and the current login session
334 is started after updating the
[403aae58]335 <filename>/etc/pam.d/system-session</filename> file to include
336 <filename class='libraryfile'>pam_systemd.so</filename>,
337 then </phrase>issue:
338 </para>
339
340 <screen remap="test" revision="sysv"><userinput>sh -c 'ulimit -c 0 &amp;&amp; ninja check-all'</userinput></screen>
341
342 <!-- From core(5): "RLIMIT_CORE will be ignored if the system is
343 configured to pipe core dumps to a program". Here "the program"
344 is systemd-coredumpd. So we need some fancy systemd setting.
345 -&ndash;user: Run it under per-user systemd manager, avoiding
346 the necessity of root priviledge.
347 -&nash;pty: Run it in a pseudo-terminal, so we can monitor the
348 process or interrupt it with Ctrl-C if we want.
349 -d: Run it with $PWD as the working directory.
350 -G: Delete the transient service unit even if the command fails,
351 to prevent "systemctl -&ndash;user status" from reporting
352 "degraded".
353 -p LimitCORE=0: Disable core dump.
354 -->
[a833725]355
356<screen remap="test" revision="systemd"><userinput>systemctl --user start dbus &amp;&amp;
[403aae58]357systemd-run --user --pty -d -G -p LimitCORE=0 ninja check-all</userinput></screen>
358
[abdc2e6]359 <para>
[5c01736c]360 <!-- EDITORS - if you have more than 4 cores, use a cgroup to measure
[11b9fb83]361 the elapsed time for the tests. Also, libstdc++.a and perhaps libstdc++fs.a
362 are used by a couple of the link-static tests. -->
[5c01736c]363 If <option>-jN</option> (N replaced with a number) is passed to
364 <command>ninja</command>, the tests will be built with N logical
365 cores, but run using all available logical cores.
366 Run the test command in a cgroup (<phrase revision='systemd'>pass
367 the <option>-p AllowedCPUs=...</option> option to the
368 <command>systemd-run</command> command,
369 </phrase>
370 read <xref linkend='build-in-cgroup'/> for details) to limit the
371 number of logical cores for running the tests.
[670ac4fc]372 Two tests named
373 <filename>sanitizer_coverage_inline8bit_counter_default_impl.cpp</filename>
374 and <filename>sanitizer_coverage_symbolize.cpp</filename> are known
375 to fail.
[5c01736c]376 One test named <filename>Linux/clone_setns.cpp</filename> will fail
377 if <option>CONFIG_USER_NS</option> is not enabled in kernel
[17658ff]378 configuration.
[670ac4fc]379 <!-- 18.1.0: 71613 Passed, 27447 Unsupported, 339 Skipped,
380 133 Expectedly Failed, 2 Failed -->
[3f6a6dc]381
[b30ce9b]382 <!-- To editors: it seems there is a more thorough test suite named
[32ced17]383 "test-suite-x.y.z.src.tar.xz" on the GitHub release download
[b30ce9b]384 page. The usage of it is on
385 https://llvm.org/docs/TestSuiteGuide.html. It looks like we've
[e440af5]386 never mentioned it in BLFS.
[eeb331f8]387
388 Let's let it go. llvm is complex enough as it is. Adding
389 the additional testsuite is IMO overkill. - bdubbs -->
[abdc2e6]390 </para>
[7b74537e]391
[abdc2e6]392 <para>
[109eb9ef]393 Now, as the &root; user:
[abdc2e6]394 </para>
[7b74537e]395
[109eb9ef]396<screen role="root"><userinput>ninja install &amp;&amp;
[e58cf149]397cp bin/FileCheck /usr/bin</userinput></screen>
[3e8c126]398<!-- as of version 13.0.0, the install process seems to install the html
399 documentation and the manual pages. The llvm html documentation
[ddf66964]400 is installed into /usr/share/doc/LLVM/llvm, while the clang html
401 documentation is installed into /usr/share/doc/LLVM/clang. So we have
402 just to move it. -->
[18a65e61]403 <para>
[7975c68a]404 If you have built the llvm documentation, it has been installed
[3e8c126]405 by the above command, but it needs to be moved. As the
406 <systemitem class="username">root</systemitem> user:
[3349c8e]407 </para>
408
[a42c273]409<screen role="root"
[9a599135]410 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/llvm-&llvm-version; &amp;&amp;
411mv -v /usr/share/doc/LLVM/llvm /usr/share/doc/llvm-&llvm-version; &amp;&amp;
412rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM</userinput></screen>
[7b74537e]413
[abdc2e6]414 <para>
[3e8c126]415 If you have built the clang documentation, it has been installed, but
416 needs to be moved too. Again as the
417 <systemitem class="username">root</systemitem> user:
[abdc2e6]418 </para>
419
[a42c273]420<screen role="root"
[9a599135]421 remap="doc"><userinput>install -v -d -m755 /usr/share/doc/llvm-&llvm-version; &amp;&amp;
422mv -v /usr/share/doc/LLVM/clang /usr/share/doc/llvm-&llvm-version; &amp;&amp;
423rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM</userinput></screen>
[7b74537e]424
425 </sect2>
[abdc2e6]426
[5889b252]427 <sect2 role="commands">
428 <title>Command Explanations</title>
429
430 <para>
[599c6d0]431 <parameter>-DLLVM_ENABLE_FFI=ON</parameter>: This switch allows
[5889b252]432 <application>LLVM</application> to use
[ce8983d8]433 <application>libffi</application>.
[5889b252]434 </para>
435
[4e845a4]436 <para>
[599c6d0]437 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>: This switch builds
438 the libraries as static and links all of them into an unique shared one.
439 This is the recommended way of building a shared library.
[4e845a4]440 </para>
441
[5889b252]442 <para>
[3349c8e]443 <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch enables
444 compiler optimizations in order to speed up the code and reduce its size.
[8558044]445 It also disables some compile checks which are not necessary on a
[11eb3ae5]446 production system.
[5889b252]447 </para>
448
[b3b7e36]449 <para>
[c39ddc6]450 <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU"</parameter>: This
[3349c8e]451 switch enables building for the same target as the host, and also for
[c39ddc6]452 the r600 AMD GPU used by the Mesa r600 and radeonsi drivers.
453 The default is
[599c6d0]454 all of the targets. You can use a semicolon separated list. Valid targets
[670ac4fc]455 are: host, AArch64, AMDGPU, ARM, AVR, BPF, Hexagon, Lanai, LoongArch,
456 Mips, MSP430, NVPTX, PowerPC, RISCV, Sparc, SystemZ, SystemZ, VE,
457 WebAssembly, X86, XCore, or all.
[b3b7e36]458 </para>
459
[5889b252]460 <para>
[bb0652ca]461 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>: Used in conjunction with
[4e845a4]462 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>, this switch enables
463 linking the tools against the shared library instead of the static ones.
[9a599135]464 It slightly reduces their size and also ensures that llvm-config
465 will correctly use libLLVM-&llvm-maj-version;.so.
[4e845a4]466 </para>
467
[b3f053c5]468 <para>
[8558044]469 <parameter>-DLLVM_ENABLE_RTTI=ON</parameter>: This switch is used to
470 build LLVM with run-time type information. This is required for building
[b3f053c5]471 <xref linkend="mesa"/>.
472 </para>
473
[76bec58]474 <para>
[599c6d0]475 <parameter>-DLLVM_BINUTILS_INCDIR=/usr/include</parameter>: This switch
[8558044]476 is used to tell the build system the location of binutils headers,
[599c6d0]477 which were installed in LFS. This allows the building of
[76bec58]478 <filename class="libraryfile">LLVMgold.so</filename>, which is needed
479 for building programs with <command>clang</command> and Link Time
480 Optimization (LTO).
481 </para>
482
[3e208e99]483 <para>
[7a9a7b26]484 <parameter>-DLLVM_INCLUDE_BENCHMARKS=OFF</parameter>:
485 is used to disable generation build targets for the LLVM
486 benchmarks. This option requires additional code that
[3e208e99]487 is not currently available.
488 </para>
489
[670ac4fc]490 <!-- https://github.com/llvm/llvm-project/issues/84168
491 It'll likely be fixed in 18.1.1, remove this then. -->
492 <para>
493 <parameter>-DLLVM_VERSION_SUFFIX=</parameter>: works around an
494 oversight in the upstream releasing process causing the 18.1.0
495 release branded <quote>18.1rc</quote>.
496 </para>
497
[08c7ccd]498 <para>
499 <parameter>-DCLANG_DEFAULT_PIE_ON_LINUX=ON</parameter>: makes
500 <option>-fpie</option> option the default when compiling programs.
501 Together with the <xref linkend="gASLR"/> feature enabled in the kernel,
502 this defeats some kind of attacks based on known memory layouts.
503 </para>
504
[670ac4fc]505 <para>
506 <parameter>-DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang</parameter>:
507 makes <command>clang</command> and <command>clang++</command>
508 search <filename class='directory'>/etc/clang</filename> for
509 configuration files.
510 </para>
511
[4e845a4]512 <para>
513 <option>-DBUILD_SHARED_LIBS=ON</option>: if used instead of
[bb0652ca]514 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter> and
515 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>, builds all the
[4e845a4]516 <application>LLVM</application> libraries (about 60) as shared
517 libraries instead of static.
[3349c8e]518 </para>
519
520 <para>
521 <option>-DLLVM_ENABLE_DOXYGEN</option>: Enables the generation of
522 browsable HTML documentation if you have installed <xref
523 linkend="doxygen"/>. You should run <command>make doxygen-html</command>
524 afterwards, and install the generated documentation manually.
[5889b252]525 </para>
526
527 </sect2>
528
[670ac4fc]529 <sect2 role="configuration">
530 <title>Configuring LLVM</title>
531
532 <sect3 id="llvm-config-info">
533 <title>Configuration Information</title>
534
535 <para>
536 If you've built Clang, as the &root; user create two configuration
537 files to make <xref linkend='gSSP'/> enabled by default for
538 for <command>clang</command> and <command>clang++</command>, so
539 the default configuration of their SSP feature will be consistent
540 with <xref linkend='gcc'/>:
541 </para>
542
[2c7e9c4f]543<screen role='root'><userinput>mkdir -pv /etc/clang &amp;&amp;
544for i in clang clang++; do
[670ac4fc]545 echo -fstack-protector-strong &gt; /etc/clang/$i.cfg
546done</userinput></screen>
547 </sect3>
548 </sect2>
549
[7b74537e]550 <sect2 role="content">
551 <title>Contents</title>
552
553 <segmentedlist>
554 <segtitle>Installed Programs</segtitle>
555 <segtitle>Installed Libraries</segtitle>
556 <segtitle>Installed Directories</segtitle>
557
558 <seglistitem>
[abdc2e6]559 <seg>
[bb6209fc]560 amdgpu-arch,
[754f4c6d]561 analyze-build, bugpoint, c-index-test, clang, clang++ (symlinks to
[d2a21aa]562 clang-&llvm-maj-version;), clang-&llvm-maj-version;, clang-check, clang-cl,
[bf5fb94]563 clang-cpp (last two symlinks to clang), clang-extdef-mapping, clang-format,
[bb6209fc]564 clang-linker-wrapper,
565 clang-offload-bundler, clang-offload-packager,
[3e8c126]566 clang-refactor, clang-rename, clang-repl, clang-scan-deps,
[670ac4fc]567 clang-tblgen,
[109eb9ef]568 diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli,
[3e8c126]569 llvm-addr2line (symlink to llvm-symbolizer),
570 llvm-ar, llvm-as, llvm-bcanalyzer,
[8558044]571 llvm-bitcode-strip (symlink to llvm-objcopy), llvm-cat,
572 llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres,
[bb6209fc]573 llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap, llvm-debuginfo-analyzer,
[9a599135]574 llvm-debuginfod, llvm-debuginfod-find,
575 llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar),
576 llvm-dwarfdump, llvm-dwarfutil,
577 llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs,
[11eb3ae5]578 llvm-install-name-tool (symlink to llvm-objcopy), llvm-jitlink,
[8558044]579 llvm-lib (symlink to llvm-ar), llvm-libtool-darwin, llvm-link,
580 llvm-lipo, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-ml,
[599c6d0]581 llvm-modextract, llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump,
[3e8c126]582 llvm-opt-report, llvm-otool (symlink to llv-objdump),
583 llvm-pdbutil, llvm-profdata, llvm-profgen,
[8558044]584 llvm-ranlib (symlink to llvm-ar), llvm-rc,
[670ac4fc]585 llvm-readelf (symlink to llvm-readobj), llvm-readobj,
586 llvm-readtapi, llvm-reduce,
[df39bac]587 llvm-remarkutil,
[3e8c126]588 llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress,
589 llvm-strings, llvm-strip (symlink to llvm-objcopy), llvm-symbolizer,
[df39bac]590 llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (symlink to
[bb6209fc]591 llvm-rc), llvm-xray, nvptx-arch, opt, sancov, sanstats, scan-build,
[670ac4fc]592 scan-build-py, scan-view, and verify-uselistorder
[abdc2e6]593 </seg>
594 <seg>
[8558044]595 libLLVM.so,
[bb6209fc]596 libLLVM*.a (100 libraries),
[8558044]597 libLTO.so,
598 libRemarks.so,
[693c4d1]599 libclang.so,
[599c6d0]600 libclang-cpp.so,
[bb6209fc]601 libclang*.a (42 libraries),
[76bec58]602 and LLVMgold.so
[abdc2e6]603 </seg>
604 <seg>
[a6221fd]605 /usr/include/{clang,clang-c,llvm,llvm-c},
[3e8c126]606 /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild},
[670ac4fc]607 /usr/share/{clang,opt-viewer,scan-build,scan-view},
608 /usr/share/doc/llvm-&llvm-version;, and
609 /etc/clang
[abdc2e6]610 </seg>
[7b74537e]611 </seglistitem>
612 </segmentedlist>
[abdc2e6]613
[7b74537e]614 <variablelist>
615 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
616 <?dbfo list-presentation="list"?>
617 <?dbhtml list-presentation="table"?>
618
[bb6209fc]619 <varlistentry id="amdgpu-arch">
620 <term><command>amdgpu-arch</command></term>
621 <listitem>
622 <para>
623 lists AMD GPUs installed; at runtime it needs
624 <filename class='libraryfile'>libhsa-runtime64.so</filename>
625 which is not a part of BLFS
626 </para>
627 <indexterm zone="llvm amdgpu-arch">
628 <primary sortas="b-amdgpu-arch">amdgpu-arch</primary>
629 </indexterm>
630 </listitem>
631 </varlistentry>
632
[754f4c6d]633 <varlistentry id="analyze-build">
634 <term><command>analyze-build</command></term>
635 <listitem>
636 <para>
637 is a static analysis tool
638 </para>
639 <indexterm zone="llvm analyze-build">
640 <primary sortas="b-analyze-build">analyze-build</primary>
641 </indexterm>
642 </listitem>
643 </varlistentry>
644
[abdc2e6]645 <varlistentry id="bugpoint">
646 <term><command>bugpoint</command></term>
647 <listitem>
648 <para>
[4c24eb0a]649 is the automatic test case reduction tool
[abdc2e6]650 </para>
651 <indexterm zone="llvm bugpoint">
652 <primary sortas="b-bugpoint">bugpoint</primary>
653 </indexterm>
654 </listitem>
655 </varlistentry>
656
[b7a300f7]657 <varlistentry id="c-index-test">
658 <term><command>c-index-test</command></term>
659 <listitem>
660 <para>
[4c24eb0a]661 is used to test the libclang API and demonstrate its usage
[b7a300f7]662 </para>
663 <indexterm zone="llvm c-index-test">
664 <primary sortas="b-c-index-test">c-index-test</primary>
665 </indexterm>
666 </listitem>
667 </varlistentry>
668
[abdc2e6]669 <varlistentry id="clang">
670 <term><command>clang</command></term>
[7b74537e]671 <listitem>
[abdc2e6]672 <para>
673 is the <application>Clang</application> C, C++,
[4c24eb0a]674 and Objective-C compiler
[abdc2e6]675 </para>
676 <indexterm zone="llvm clang">
677 <primary sortas="b-clang">clang</primary>
[7b74537e]678 </indexterm>
679 </listitem>
680 </varlistentry>
681
[b7a300f7]682 <varlistentry id="clang-check">
683 <term><command>clang-check</command></term>
684 <listitem>
685 <para>
686 is a tool to perform static code analysis and display Abstract
[4c24eb0a]687 Syntax Trees (AST)
[b7a300f7]688 </para>
689 <indexterm zone="llvm clang-check">
690 <primary sortas="b-clang-check">clang-check</primary>
691 </indexterm>
692 </listitem>
693 </varlistentry>
694
[11eb3ae5]695 <varlistentry id="clang-extdef-mapping">
696 <term><command>clang-extdef-mapping</command></term>
697 <listitem>
698 <para>
699 is a tool to collect the USR name and location of external
[4c24eb0a]700 definitions in a source file
[11eb3ae5]701 </para>
702 <indexterm zone="llvm clang-extdef-mapping">
703 <primary sortas="b-clang-extdef-mapping">clang-extdef-mapping</primary>
704 </indexterm>
705 </listitem>
706 </varlistentry>
707
[3349c8e]708 <varlistentry id="clang-format">
709 <term><command>clang-format</command></term>
710 <listitem>
711 <para>
712 is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf
[4c24eb0a]713 code
[3349c8e]714 </para>
715 <indexterm zone="llvm clang-format">
716 <primary sortas="b-clang-format">clang-format</primary>
717 </indexterm>
718 </listitem>
719 </varlistentry>
720
[9a599135]721 <varlistentry id="clang-linker-wrapper">
722 <term><command>clang-linker-wrapper</command></term>
[11b9fb83]723 <listitem>
724 <para>
[9a599135]725 is a wrapper utility over the host linker
[11b9fb83]726 </para>
[9a599135]727 <indexterm zone="llvm clang-linker-wrapper">
728 <primary sortas="b-clang-linker-wrapper">clang-linker-wrapper</primary>
[11b9fb83]729 </indexterm>
730 </listitem>
731 </varlistentry>
[9a599135]732
[b7a300f7]733 <varlistentry id="clang-offload-bundler">
734 <term><command>clang-offload-bundler</command></term>
735 <listitem>
736 <para>
[246a7c53]737 is a tool to bundle/unbundle OpenMP offloaded files associated with
[4c24eb0a]738 a common source file
[b7a300f7]739 </para>
740 <indexterm zone="llvm clang-offload-bundler">
741 <primary sortas="b-clang-offload-bundler">clang-offload-bundler</primary>
742 </indexterm>
743 </listitem>
744 </varlistentry>
745
[9a599135]746 <varlistentry id="clang-offload-packager">
747 <term><command>clang-offload-packager</command></term>
748 <listitem>
749 <para>
750 is a tool to bundle several object files into a single binary,
751 which can then be used to create a fatbinary containing offloading
752 code
753 </para>
754 <indexterm zone="llvm clang-offload-packager">
755 <primary sortas="b-clang-offload-packager">clang-offload-packager</primary>
756 </indexterm>
757 </listitem>
758 </varlistentry>
759
[11b9fb83]760 <varlistentry id="clang-refactor">
761 <term><command>clang-refactor</command></term>
762 <listitem>
763 <para>
[4c24eb0a]764 is a Clang-based refactoring tool for C, C++ and Objective-C
[11b9fb83]765 </para>
766 <indexterm zone="llvm clang-refactor">
767 <primary sortas="b-clang-refactor">clang-refactor</primary>
768 </indexterm>
769 </listitem>
770 </varlistentry>
771
[b7a300f7]772 <varlistentry id="clang-rename">
773 <term><command>clang-rename</command></term>
774 <listitem>
775 <para>
[4c24eb0a]776 is a tool to rename symbols in C/C++ programs
[b7a300f7]777 </para>
778 <indexterm zone="llvm clang-rename">
779 <primary sortas="b-clang-rename">clang-rename</primary>
780 </indexterm>
781 </listitem>
782 </varlistentry>
783
[11eb3ae5]784 <varlistentry id="clang-scan-deps">
785 <term><command>clang-scan-deps</command></term>
786 <listitem>
787 <para>
[4c24eb0a]788 is a tool to scan for dependencies in a source file
[11eb3ae5]789 </para>
790 <indexterm zone="llvm clang-scan-deps">
791 <primary sortas="b-clang-scan-deps">clang-scan-deps</primary>
792 </indexterm>
793 </listitem>
794 </varlistentry>
795
[670ac4fc]796 <varlistentry id="clang-tblgen">
797 <term><command>clang-tblgen</command></term>
798 <listitem>
799 <para>
800 is a program that translates compiler-related target
801 description (<filename class='extension'>.td</filename>) files
802 into C++ code and other output formats
803 </para>
804 <indexterm zone="llvm clang-tblgen">
805 <primary sortas="b-clang-tblgen">clang-tblgen</primary>
806 </indexterm>
807 </listitem>
808 </varlistentry>
809
[11b9fb83]810 <varlistentry id="diagtool">
811 <term><command>diagtool</command></term>
812 <listitem>
813 <para>
[4c24eb0a]814 is a combination of tools for dealing with diagnostics in clang
[11b9fb83]815 </para>
816 <indexterm zone="llvm diagtool">
817 <primary sortas="b-diagtool">diagtool</primary>
818 </indexterm>
819 </listitem>
820 </varlistentry>
821
[109eb9ef]822 <varlistentry id="FileCheck">
823 <term><command>FileCheck</command></term>
824 <listitem>
825 <para>
[54d58907]826 is a tool that reads two files (one from standard input,
[109eb9ef]827 and one specified on the command line) and uses one to verify the other.
828 </para>
829 <indexterm zone="llvm FileCheck">
830 <primary sortas="b-FileCheck">FileCheck</primary>
831 </indexterm>
832 </listitem>
833 </varlistentry>
834
[11b9fb83]835 <varlistentry id="dsymutil">
836 <term><command>dsymutil</command></term>
837 <listitem>
838 <para>
839 is a tool used to manipulate archived DWARF debug symbol files,
[4c24eb0a]840 compatible with the Darwin command <command>dsymutil</command>
[11b9fb83]841 </para>
842 <indexterm zone="llvm dsymutil">
843 <primary sortas="b-dsymutil">dsymutil</primary>
844 </indexterm>
845 </listitem>
846 </varlistentry>
847
[b7a300f7]848 <varlistentry id="git-clang-format">
849 <term><command>git-clang-format</command></term>
850 <listitem>
851 <para>
852 runs clang-format on git generated patches (requires
853 <xref linkend="git"/>)
854 </para>
855 <indexterm zone="llvm git-clang-format">
856 <primary sortas="b-git-clang-format">git-clang-format</primary>
857 </indexterm>
858 </listitem>
859 </varlistentry>
860
[11b9fb83]861 <varlistentry id="hmaptool">
862 <term><command>hmaptool</command></term>
863 <listitem>
864 <para>
[4c24eb0a]865 is a Python tool to dump and construct header maps
[11b9fb83]866 </para>
867 <indexterm zone="llvm hmaptool">
868 <primary sortas="b-hmaptool">hmaptool</primary>
869 </indexterm>
870 </listitem>
871 </varlistentry>
872
[bb6209fc]873 <varlistentry id="intercept-build">
874 <term><command>intercept-build</command></term>
875 <listitem>
876 <para>
877 generates a database of build commands for a project
878 </para>
879 <indexterm zone="llvm intercept-build">
880 <primary sortas="b-intercept-build">intercept-build</primary>
881 </indexterm>
882 </listitem>
883 </varlistentry>
884
[abdc2e6]885 <varlistentry id="llc">
886 <term><command>llc</command></term>
[7b74537e]887 <listitem>
[abdc2e6]888 <para>
[4c24eb0a]889 is the <application>LLVM</application> static compiler
[abdc2e6]890 </para>
891 <indexterm zone="llvm llc">
892 <primary sortas="b-llc">llc</primary>
893 </indexterm>
894 </listitem>
895 </varlistentry>
896
897 <varlistentry id="lli">
898 <term><command>lli</command></term>
899 <listitem>
900 <para>
901 is used to directly execute programs from
[4c24eb0a]902 <application>LLVM</application> bitcode
[abdc2e6]903 </para>
904 <indexterm zone="llvm lli">
905 <primary sortas="b-lli">lli</primary>
906 </indexterm>
907 </listitem>
908 </varlistentry>
909
[11eb3ae5]910 <varlistentry id="llvm-addr2line">
911 <term><command>llvm-addr2line</command></term>
912 <listitem>
913 <para>
914 is a tool used to convert addresses into file names and line
[4c24eb0a]915 numbers
[11eb3ae5]916 </para>
917 <indexterm zone="llvm llvm-addr2line">
918 <primary sortas="b-llvm-addr2line">llvm-addr2line</primary>
919 </indexterm>
920 </listitem>
921 </varlistentry>
922
[abdc2e6]923 <varlistentry id="llvm-ar">
924 <term><command>llvm-ar</command></term>
925 <listitem>
926 <para>
[4c24eb0a]927 is the <application>LLVM</application> archiver
[abdc2e6]928 </para>
929 <indexterm zone="llvm llvm-ar">
930 <primary sortas="b-llvm-ar">llvm-ar</primary>
931 </indexterm>
932 </listitem>
933 </varlistentry>
934
935 <varlistentry id="llvm-as">
936 <term><command>llvm-as</command></term>
937 <listitem>
938 <para>
[4c24eb0a]939 is the <application>LLVM</application> assembler
[abdc2e6]940 </para>
941 <indexterm zone="llvm llvm-as">
942 <primary sortas="b-llvm-as">llvm-as</primary>
943 </indexterm>
944 </listitem>
945 </varlistentry>
946
947 <varlistentry id="llvm-bcanalyzer">
948 <term><command>llvm-bcanalyzer</command></term>
949 <listitem>
950 <para>
[4c24eb0a]951 is the <application>LLVM</application> bitcode analyzer
[abdc2e6]952 </para>
953 <indexterm zone="llvm llvm-bcanalyzer">
954 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
955 </indexterm>
956 </listitem>
957 </varlistentry>
958
[599c6d0]959 <varlistentry id="llvm-bitcode-strip">
960 <term><command>llvm-bitcode-strip</command></term>
961 <listitem>
962 <para>
963 strips LLVM bitcode from an object
964 </para>
965 <indexterm zone="llvm llvm-bitcode-strip">
966 <primary sortas="b-llvm-bitcode-strip">llvm-bitcode-strip</primary>
967 </indexterm>
968 </listitem>
969 </varlistentry>
970
[b7a300f7]971 <varlistentry id="llvm-cat">
972 <term><command>llvm-cat</command></term>
973 <listitem>
974 <para>
[4c24eb0a]975 is a tool to concatenate llvm modules
[b7a300f7]976 </para>
977 <indexterm zone="llvm llvm-cat">
978 <primary sortas="b-llvm-cat">llvm-cat</primary>
979 </indexterm>
980 </listitem>
981 </varlistentry>
982
[11b9fb83]983 <varlistentry id="llvm-cfi-verify">
984 <term><command>llvm-cfi-verify</command></term>
985 <listitem>
986 <para>
987 identifies whether Control Flow Integrity protects all indirect
988 control flow instructions in the provided object file, DSO, or
[4c24eb0a]989 binary
[11b9fb83]990 </para>
991 <indexterm zone="llvm llvm-cfi-verify">
992 <primary sortas="b-llvm-cfi-verify">llvm-cfi-verify</primary>
993 </indexterm>
994 </listitem>
995 </varlistentry>
996
[abdc2e6]997 <varlistentry id="llvm-config">
998 <term><command>llvm-config</command></term>
999 <listitem>
1000 <para>
[4c24eb0a]1001 Prints <application>LLVM</application> compilation options
[abdc2e6]1002 </para>
1003 <indexterm zone="llvm llvm-config">
1004 <primary sortas="b-llvm-config">llvm-config</primary>
1005 </indexterm>
1006 </listitem>
1007 </varlistentry>
1008
1009 <varlistentry id="llvm-cov">
1010 <term><command>llvm-cov</command></term>
1011 <listitem>
1012 <para>
[4c24eb0a]1013 is used to emit coverage information
[abdc2e6]1014 </para>
1015 <indexterm zone="llvm llvm-cov">
1016 <primary sortas="b-llvm-cov">llvm-cov</primary>
1017 </indexterm>
1018 </listitem>
1019 </varlistentry>
1020
[3349c8e]1021 <varlistentry id="llvm-c-test">
1022 <term><command>llvm-c-test</command></term>
1023 <listitem>
1024 <para>
[4c24eb0a]1025 is a bytecode disassembler
[3349c8e]1026 </para>
1027 <indexterm zone="llvm llvm-c-test">
1028 <primary sortas="b-llvm-c-test">llvm-c-test</primary>
1029 </indexterm>
1030 </listitem>
1031 </varlistentry>
1032
[b7a300f7]1033 <varlistentry id="llvm-cvtres">
1034 <term><command>llvm-cvtres</command></term>
1035 <listitem>
1036 <para>
[4c24eb0a]1037 is a tool to convert Microsoft resource files to COFF
[b7a300f7]1038 </para>
1039 <indexterm zone="llvm llvm-cvtres">
1040 <primary sortas="b-llvm-cvtres">llvm-cvtres</primary>
1041 </indexterm>
1042 </listitem>
1043 </varlistentry>
1044
[b3b7e36]1045 <varlistentry id="llvm-cxxdump">
1046 <term><command>llvm-cxxdump</command></term>
1047 <listitem>
1048 <para>
[4c24eb0a]1049 is used as a C++ ABI Data Dumper
[b3b7e36]1050 </para>
1051 <indexterm zone="llvm llvm-cxxdump">
1052 <primary sortas="b-llvm-cxxdump">llvm-cxxdump</primary>
1053 </indexterm>
1054 </listitem>
1055 </varlistentry>
1056
[b7a300f7]1057 <varlistentry id="llvm-cxxfilt">
1058 <term><command>llvm-cxxfilt</command></term>
1059 <listitem>
1060 <para>
[4c24eb0a]1061 is used to demangle C++ symbols in llvm code
[b7a300f7]1062 </para>
1063 <indexterm zone="llvm llvm-cxxfilt">
1064 <primary sortas="b-llvm-cxxfilt">llvm-cxxfilt</primary>
1065 </indexterm>
1066 </listitem>
1067 </varlistentry>
1068
[11eb3ae5]1069 <varlistentry id="llvm-cxxmap">
1070 <term><command>llvm-cxxmap</command></term>
1071 <listitem>
1072 <para>
[4c24eb0a]1073 is used to remap C++ mangled symbols
[11eb3ae5]1074 </para>
1075 <indexterm zone="llvm llvm-cxxmap">
1076 <primary sortas="b-llvm-cxxmap">llvm-cxxmap</primary>
1077 </indexterm>
1078 </listitem>
1079 </varlistentry>
1080
[bb6209fc]1081 <varlistentry id="llvm-debuginfo-analyzer">
1082 <term><command>llvm-debuginfo-analyzer</command></term>
1083 <listitem>
1084 <para>
1085 prints a logical representation of low-level debug information
1086 </para>
1087 <indexterm zone="llvm llvm-debuginfo-analyzer">
1088 <primary sortas="b-llvm-debuginfo-analyzer">llvm-debuginfo-analyzer</primary>
1089 </indexterm>
1090 </listitem>
1091 </varlistentry>
1092
[9a599135]1093 <varlistentry id="llvm-debuginfod">
1094 <term><command>llvm-debuginfod</command></term>
1095 <listitem>
1096 <para>
1097 is a service providing debug information over an HTTP API for
1098 analyzing stripped binaries
1099 </para>
1100 <indexterm zone="llvm llvm-debuginfod">
1101 <primary sortas="b-llvm-debuginfod">llvm-debuginfod</primary>
1102 </indexterm>
1103 </listitem>
1104 </varlistentry>
1105
1106 <varlistentry id="llvm-debuginfod-find">
1107 <term><command>llvm-debuginfod-find</command></term>
1108 <listitem>
1109 <para>
1110 is an interface to the <command>llvm-debuginfod</command> daemon
1111 for finding debuginfod artifacts
1112 </para>
1113 <indexterm zone="llvm llvm-debuginfod-find">
1114 <primary sortas="b-llvm-debuginfod-find">llvm-debuginfod-find</primary>
1115 </indexterm>
1116 </listitem>
1117 </varlistentry>
1118
[abdc2e6]1119 <varlistentry id="llvm-diff">
1120 <term><command>llvm-diff</command></term>
1121 <listitem>
1122 <para>
1123 is the <application>LLVM</application> structural
[4c24eb0a]1124 '<command>diff</command>'
[abdc2e6]1125 </para>
1126 <indexterm zone="llvm llvm-diff">
1127 <primary sortas="b-llvm-diff">llvm-diff</primary>
1128 </indexterm>
1129 </listitem>
1130 </varlistentry>
1131
1132 <varlistentry id="llvm-dis">
1133 <term><command>llvm-dis</command></term>
1134 <listitem>
1135 <para>
[4c24eb0a]1136 is the <application>LLVM</application> disassembler
[abdc2e6]1137 </para>
1138 <indexterm zone="llvm llvm-dis">
1139 <primary sortas="b-llvm-dis">llvm-dis</primary>
1140 </indexterm>
1141 </listitem>
1142 </varlistentry>
1143
[3349c8e]1144 <varlistentry id="llvm-dwarfdump">
1145 <term><command>llvm-dwarfdump</command></term>
1146 <listitem>
1147 <para>
[4c24eb0a]1148 prints the content of DWARF sections in object files
[3349c8e]1149 </para>
1150 <indexterm zone="llvm llvm-dwarfdump">
1151 <primary sortas="b-llvm-dwarfdump">llvm-dwarfdump</primary>
1152 </indexterm>
1153 </listitem>
1154 </varlistentry>
1155
[9a599135]1156 <varlistentry id="llvm-dwarfutil">
1157 <term><command>llvm-dwarfutil</command></term>
1158 <listitem>
1159 <para>
1160 is a tool to copy and manipulate debug info
1161 </para>
1162 <indexterm zone="llvm llvm-dwarfutil">
1163 <primary sortas="b-llvm-dwarfutil">llvm-dwarfutil</primary>
1164 </indexterm>
1165 </listitem>
1166 </varlistentry>
1167
[3349c8e]1168 <varlistentry id="llvm-dwp">
1169 <term><command>llvm-dwp</command></term>
1170 <listitem>
1171 <para>
[4c24eb0a]1172 merges split DWARF files
[3349c8e]1173 </para>
1174 <indexterm zone="llvm llvm-dwp">
1175 <primary sortas="b-llvm-dwp">llvm-dwp</primary>
1176 </indexterm>
1177 </listitem>
1178 </varlistentry>
1179
[11eb3ae5]1180 <varlistentry id="llvm-elfabi">
1181 <term><command>llvm-elfabi</command></term>
1182 <listitem>
1183 <para>
[4c24eb0a]1184 is used to read information about an ELF binary's ABI
[11eb3ae5]1185 </para>
1186 <indexterm zone="llvm llvm-elfabi">
1187 <primary sortas="b-llvm-elfabi">llvm-elfabi</primary>
1188 </indexterm>
1189 </listitem>
1190 </varlistentry>
1191
[11b9fb83]1192 <varlistentry id="llvm-exegesis">
1193 <term><command>llvm-exegesis</command></term>
1194 <listitem>
1195 <para>
1196 is a benchmarking tool that uses information available in LLVM to
1197 measure host machine instruction characteristics like latency or
[4c24eb0a]1198 port decomposition
[11b9fb83]1199 </para>
1200 <indexterm zone="llvm llvm-exegesis">
1201 <primary sortas="b-llvm-exegesis">llvm-exegesis</primary>
1202 </indexterm>
1203 </listitem>
1204 </varlistentry>
1205
[abdc2e6]1206 <varlistentry id="llvm-extract">
1207 <term><command>llvm-extract</command></term>
1208 <listitem>
1209 <para>
1210 is used to extract a function from an
[4c24eb0a]1211 <application>LLVM</application> module
[abdc2e6]1212 </para>
1213 <indexterm zone="llvm llvm-extract">
1214 <primary sortas="b-llvm-extract">llvm-extract</primary>
1215 </indexterm>
1216 </listitem>
1217 </varlistentry>
1218
[bf5fb94]1219 <varlistentry id="llvm-gsymutil">
1220 <term><command>llvm-gsymutil</command></term>
1221 <listitem>
1222 <para>
1223 is used to process GSYM Symbolication Format files which
1224 convert memory addresses to function name and source file
[4c24eb0a]1225 line. These files are smaller than DWARF or Breakpad files
[bf5fb94]1226 </para>
1227 <indexterm zone="llvm llvm-gsymutil">
1228 <primary sortas="b-llvm-gsymutil">llvm-gsymutil</primary>
1229 </indexterm>
1230 </listitem>
1231 </varlistentry>
1232
[11eb3ae5]1233 <varlistentry id="llvm-ifs">
1234 <term><command>llvm-ifs</command></term>
1235 <listitem>
1236 <para>
[4c24eb0a]1237 is used to merge interface stubs with object files
[11eb3ae5]1238 </para>
1239 <indexterm zone="llvm llvm-ifs">
1240 <primary sortas="b-llvm-ifs">llvm-ifs</primary>
1241 </indexterm>
1242 </listitem>
1243 </varlistentry>
1244
1245 <varlistentry id="llvm-install-name-tool">
1246 <term><command>llvm-install-name-tool</command></term>
1247 <listitem>
1248 <para>
[4c24eb0a]1249 is used to rewrite load commands into MachO binary format
[11eb3ae5]1250 </para>
1251 <indexterm zone="llvm llvm-install-name-tool">
1252 <primary sortas="b-llvm-install-name-tool">llvm-install-name-tool</primary>
1253 </indexterm>
1254 </listitem>
1255 </varlistentry>
1256
1257 <varlistentry id="llvm-jitlink">
1258 <term><command>llvm-jitlink</command></term>
1259 <listitem>
1260 <para>
1261 is used to parse relocatable object files to make their contents
[4c24eb0a]1262 executable in a target process
[11eb3ae5]1263 </para>
1264 <indexterm zone="llvm llvm-jitlink">
1265 <primary sortas="b-llvm-jitlink">llvm-jitlink</primary>
1266 </indexterm>
1267 </listitem>
1268 </varlistentry>
1269
[599c6d0]1270 <varlistentry id="llvm-libtool-darwin">
1271 <term><command>llvm-libtool-darwin</command></term>
1272 <listitem>
1273 <para>
1274 provides basic libtool functionality on Darwin-based systems.
1275 This is mostly useful if you are generating binaries for macOS
1276 systems
1277 </para>
1278 <indexterm zone="llvm llvm-libtool-darwin">
1279 <primary sortas="b-llvm-libtool-darwin">llvm-libtool-darwin</primary>
1280 </indexterm>
1281 </listitem>
1282 </varlistentry>
1283
[abdc2e6]1284 <varlistentry id="llvm-link">
1285 <term><command>llvm-link</command></term>
1286 <listitem>
1287 <para>
[4c24eb0a]1288 is the <application>LLVM</application> linker
[abdc2e6]1289 </para>
1290 <indexterm zone="llvm llvm-link">
1291 <primary sortas="b-llvm-link">llvm-link</primary>
1292 </indexterm>
1293 </listitem>
1294 </varlistentry>
1295
[11eb3ae5]1296 <varlistentry id="llvm-lipo">
1297 <term><command>llvm-lipo</command></term>
1298 <listitem>
1299 <para>
[4c24eb0a]1300 is used to create universal binaries from MachO files
[11eb3ae5]1301 </para>
1302 <indexterm zone="llvm llvm-lipo">
1303 <primary sortas="b-llvm-lipo">llvm-lipo</primary>
1304 </indexterm>
1305 </listitem>
1306 </varlistentry>
1307
[3349c8e]1308 <varlistentry id="llvm-lto">
1309 <term><command>llvm-lto</command></term>
1310 <listitem>
1311 <para>
1312 is the <application>LLVM</application> LTO (link time optimization)
[4c24eb0a]1313 linker
[3349c8e]1314 </para>
1315 <indexterm zone="llvm llvm-lto">
1316 <primary sortas="b-llvm-lto">llvm-lto</primary>
1317 </indexterm>
1318 </listitem>
1319 </varlistentry>
1320
[b7a300f7]1321 <varlistentry id="llvm-lto2">
1322 <term><command>llvm-lto2</command></term>
1323 <listitem>
1324 <para>
[4c24eb0a]1325 is a test harness for the resolution based LTO interface
[b7a300f7]1326 </para>
1327 <indexterm zone="llvm llvm-lto2">
1328 <primary sortas="b-llvm-lto2">llvm-lto2</primary>
1329 </indexterm>
1330 </listitem>
1331 </varlistentry>
1332
[3349c8e]1333 <varlistentry id="llvm-mc">
1334 <term><command>llvm-mc</command></term>
1335 <listitem>
1336 <para>
[4c24eb0a]1337 is a standalone machine code assembler/disassembler
[3349c8e]1338 </para>
1339 <indexterm zone="llvm llvm-mc">
1340 <primary sortas="b-llvm-mc">llvm-mc</primary>
1341 </indexterm>
1342 </listitem>
1343 </varlistentry>
1344
[11b9fb83]1345 <varlistentry id="llvm-mca">
1346 <term><command>llvm-mca</command></term>
1347 <listitem>
1348 <para>
[c5e3c1c]1349 is a performance analysis tool to statically measure the
[4c24eb0a]1350 performance of machine code
[11b9fb83]1351 </para>
1352 <indexterm zone="llvm llvm-mca">
1353 <primary sortas="b-llvm-mca">llvm-mca</primary>
1354 </indexterm>
1355 </listitem>
1356 </varlistentry>
1357
1358<!-- <varlistentry id="llvm-mcmarkup">
[b7a300f7]1359 <term><command>llvm-mcmarkup</command></term>
1360 <listitem>
1361 <para>
1362 is a parser for machine code markup.
1363 </para>
1364 <indexterm zone="llvm llvm-mcmarkup">
1365 <primary sortas="b-llvm-mcmarkup">llvm-mcmarkup</primary>
1366 </indexterm>
1367 </listitem>
[11b9fb83]1368 </varlistentry>-->
[b7a300f7]1369
[c5e3c1c]1370 <varlistentry id="llvm-ml">
1371 <term><command>llvm-ml</command></term>
1372 <listitem>
1373 <para>
[4c24eb0a]1374 is a playground for machine code provided by LLVM
[c5e3c1c]1375 </para>
1376 <indexterm zone="llvm llvm-ml">
1377 <primary sortas="b-llvm-ml">llvm-ml</primary>
1378 </indexterm>
1379 </listitem>
1380 </varlistentry>
1381
[b7a300f7]1382 <varlistentry id="llvm-modextract">
1383 <term><command>llvm-modextract</command></term>
1384 <listitem>
1385 <para>
[4c24eb0a]1386 is a tool to extract one module from multimodule bitcode files
[b7a300f7]1387 </para>
1388 <indexterm zone="llvm llvm-modextract">
1389 <primary sortas="b-llvm-modextract">llvm-modextract</primary>
1390 </indexterm>
1391 </listitem>
1392 </varlistentry>
1393
1394 <varlistentry id="llvm-mt">
1395 <term><command>llvm-mt</command></term>
1396 <listitem>
1397 <para>
1398 is a tool to generate signed files and catalogs from a
[4c24eb0a]1399 side-by-side assembly manifest (used for Microsoft SDK)
[b7a300f7]1400 </para>
1401 <indexterm zone="llvm llvm-mt">
1402 <primary sortas="b-llvm-mt">llvm-mt</primary>
1403 </indexterm>
1404 </listitem>
1405 </varlistentry>
1406
[abdc2e6]1407 <varlistentry id="llvm-nm">
1408 <term><command>llvm-nm</command></term>
1409 <listitem>
1410 <para>
1411 is used to list <application>LLVM</application> bitcode
[4c24eb0a]1412 and object file's symbol table
[abdc2e6]1413 </para>
1414 <indexterm zone="llvm llvm-nm">
1415 <primary sortas="b-llvm-nm">llvm-nm</primary>
1416 </indexterm>
1417 </listitem>
1418 </varlistentry>
[b3b7e36]1419
[11b9fb83]1420 <varlistentry id="llvm-objcopy">
1421 <term><command>llvm-objcopy</command></term>
1422 <listitem>
1423 <para>
[4c24eb0a]1424 is LLVM's version of an objcopy tool
[11b9fb83]1425 </para>
1426 <indexterm zone="llvm llvm-objcopy">
1427 <primary sortas="b-llvm-objcopy">llvm-objcopy</primary>
1428 </indexterm>
1429 </listitem>
1430 </varlistentry>
1431
[3349c8e]1432 <varlistentry id="llvm-objdump">
1433 <term><command>llvm-objdump</command></term>
1434 <listitem>
1435 <para>
[4c24eb0a]1436 is an <application>LLVM</application> object file dumper
[3349c8e]1437 </para>
1438 <indexterm zone="llvm llvm-objdump">
1439 <primary sortas="b-llvm-objdump">llvm-objdump</primary>
1440 </indexterm>
1441 </listitem>
1442 </varlistentry>
1443
[b7a300f7]1444 <varlistentry id="llvm-opt-report">
1445 <term><command>llvm-opt-report</command></term>
1446 <listitem>
1447 <para>
1448 is a tool to generate an optimization report from YAML optimization
[4c24eb0a]1449 record files
[b7a300f7]1450 </para>
1451 <indexterm zone="llvm llvm-opt-report">
1452 <primary sortas="b-llvm-opt-report">llvm-opt-report</primary>
1453 </indexterm>
1454 </listitem>
1455 </varlistentry>
1456
1457 <varlistentry id="llvm-pdbutil">
1458 <term><command>llvm-pdbutil</command></term>
[b3b7e36]1459 <listitem>
1460 <para>
[4c24eb0a]1461 is a PDB (Program Database) dumper. PDB is a Microsoft format
[b3b7e36]1462 </para>
[b7a300f7]1463 <indexterm zone="llvm llvm-pdbutil">
1464 <primary sortas="b-llvm-pdbutil">llvm-pdbutil</primary>
[b3b7e36]1465 </indexterm>
1466 </listitem>
1467 </varlistentry>
[3349c8e]1468
1469 <varlistentry id="llvm-profdata">
1470 <term><command>llvm-profdata</command></term>
[abdc2e6]1471 <listitem>
1472 <para>
[4c24eb0a]1473 is a small tool to manipulate and print profile data files
[abdc2e6]1474 </para>
[3349c8e]1475 <indexterm zone="llvm llvm-profdata">
1476 <primary sortas="b-llvm-profdata">llvm-profdata</primary>
[abdc2e6]1477 </indexterm>
1478 </listitem>
[3349c8e]1479 </varlistentry>
[abdc2e6]1480
[599c6d0]1481 <varlistentry id="llvm-profgen">
1482 <term><command>llvm-profgen</command></term>
1483 <listitem>
1484 <para>
1485 generates LLVM SPGO profiling information
1486 </para>
1487 <indexterm zone="llvm llvm-profgen">
1488 <primary sortas="b-llvm-profgen">llvm-profgen</primary>
1489 </indexterm>
1490 </listitem>
1491 </varlistentry>
1492
[abdc2e6]1493 <varlistentry id="llvm-ranlib">
1494 <term><command>llvm-ranlib</command></term>
1495 <listitem>
1496 <para>
[3fdc9b0]1497 is used to generate an index for a <application>LLVM</application>
[4c24eb0a]1498 archive
[abdc2e6]1499 </para>
1500 <indexterm zone="llvm llvm-ranlib">
1501 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
1502 </indexterm>
1503 </listitem>
1504 </varlistentry>
1505
[11b9fb83]1506 <varlistentry id="llvm-rc">
1507 <term><command>llvm-rc</command></term>
1508 <listitem>
1509 <para>
1510 is a platform-independent tool to compile resource scripts
[4c24eb0a]1511 into binary resource files
[11b9fb83]1512 </para>
1513 <indexterm zone="llvm llvm-rc">
1514 <primary sortas="b-llvm-rc">llvm-rc</primary>
1515 </indexterm>
1516 </listitem>
1517 </varlistentry>
1518
[3349c8e]1519 <varlistentry id="llvm-readobj">
1520 <term><command>llvm-readobj</command></term>
1521 <listitem>
1522 <para>
[4c24eb0a]1523 displays low-level format-specific information about object files
[3349c8e]1524 </para>
1525 <indexterm zone="llvm llvm-readobj">
1526 <primary sortas="b-llvm-readobj">llvm-readobj</primary>
1527 </indexterm>
1528 </listitem>
1529 </varlistentry>
1530
[670ac4fc]1531 <varlistentry id="llvm-readtapi">
1532 <term><command>llvm-readtapi</command></term>
1533 <listitem>
1534 <para>
1535 is the LLVM TAPI file reader and transformer
1536 </para>
1537 <indexterm zone="llvm llvm-readtapi">
1538 <primary sortas="b-llvm-readtapi">llvm-readtapi</primary>
1539 </indexterm>
1540 </listitem>
1541 </varlistentry>
1542
[11eb3ae5]1543 <varlistentry id="llvm-reduce">
1544 <term><command>llvm-reduce</command></term>
1545 <listitem>
1546 <para>
1547 is used to automatically reduce testcases
[4c24eb0a]1548 when running a test suite
[11eb3ae5]1549 </para>
1550 <indexterm zone="llvm llvm-reduce">
1551 <primary sortas="b-llvm-reduce">llvm-reduce</primary>
1552 </indexterm>
1553 </listitem>
1554 </varlistentry>
1555
[bb6209fc]1556 <varlistentry id="llvm-remarkutil">
1557 <term><command>llvm-remarkutil</command></term>
1558 <listitem>
1559 <para>
1560 converts remark files between bitstream and YAML; or prints
1561 function instruction count information in remark files
1562 </para>
[df39bac]1563 <indexterm zone="llvm llvm-remarkutil">
1564 <primary sortas="b-llvm-remarkutil">llvm-remarkutil</primary>
[bb6209fc]1565 </indexterm>
1566 </listitem>
1567 </varlistentry>
1568
[3349c8e]1569 <varlistentry id="llvm-rtdyld">
1570 <term><command>llvm-rtdyld</command></term>
1571 <listitem>
1572 <para>
[4c24eb0a]1573 is the <application>LLVM</application> MC-JIT tool
[3349c8e]1574 </para>
1575 <indexterm zone="llvm llvm-rtdyld">
1576 <primary sortas="b-llvm-rtdyld">llvm-rtdyld</primary>
1577 </indexterm>
1578 </listitem>
1579 </varlistentry>
1580
1581 <varlistentry id="llvm-size">
1582 <term><command>llvm-size</command></term>
1583 <listitem>
1584 <para>
[4c24eb0a]1585 is the <application>LLVM</application> object size dumper
[3349c8e]1586 </para>
1587 <indexterm zone="llvm llvm-size">
1588 <primary sortas="b-llvm-size">llvm-size</primary>
1589 </indexterm>
1590 </listitem>
1591 </varlistentry>
1592
1593 <varlistentry id="llvm-split">
1594 <term><command>llvm-split</command></term>
1595 <listitem>
1596 <para>
[4c24eb0a]1597 is the <application>LLVM</application> module splitter
[3349c8e]1598 </para>
1599 <indexterm zone="llvm llvm-split">
1600 <primary sortas="b-llvm-split">llvm-split</primary>
1601 </indexterm>
1602 </listitem>
1603 </varlistentry>
1604
[abdc2e6]1605 <varlistentry id="llvm-stress">
1606 <term><command>llvm-stress</command></term>
1607 <listitem>
1608 <para>
1609 is used to generate random
[4c24eb0a]1610 <filename class="extension">.ll</filename> files
[abdc2e6]1611 </para>
1612 <indexterm zone="llvm llvm-stress">
1613 <primary sortas="b-llvm-stress">llvm-stress</primary>
1614 </indexterm>
1615 </listitem>
1616 </varlistentry>
1617
[b7a300f7]1618 <varlistentry id="llvm-strings">
1619 <term><command>llvm-strings</command></term>
1620 <listitem>
1621 <para>
1622 print strings found in a binary (object file, executable, or
[4c24eb0a]1623 archive library)
[b7a300f7]1624 </para>
1625 <indexterm zone="llvm llvm-strings">
1626 <primary sortas="b-llvm-strings">llvm-strings</primary>
1627 </indexterm>
1628 </listitem>
1629 </varlistentry>
1630
[3349c8e]1631 <varlistentry id="llvm-symbolizer">
1632 <term><command>llvm-symbolizer</command></term>
1633 <listitem>
1634 <para>
[b3443239]1635 converts addresses into source code locations
[3349c8e]1636 </para>
1637 <indexterm zone="llvm llvm-symbolizer">
1638 <primary sortas="b-llvm-symbolizer">llvm-symbolizer</primary>
1639 </indexterm>
1640 </listitem>
1641 </varlistentry>
1642
[abdc2e6]1643 <varlistentry id="llvm-tblgen">
1644 <term><command>llvm-tblgen</command></term>
1645 <listitem>
1646 <para>
1647 is the <application>LLVM</application> Target Description
[4c24eb0a]1648 To C++ Code Generator
[abdc2e6]1649 </para>
1650 <indexterm zone="llvm llvm-tblgen">
1651 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
1652 </indexterm>
1653 </listitem>
1654 </varlistentry>
1655
[754f4c6d]1656 <varlistentry id="llvm-tli-checker">
1657 <term><command>llvm-tli-checker</command></term>
1658 <listitem>
1659 <para>
1660 is the <application>LLVM</application> TargetLibraryInfo
1661 versus SDK checker
1662 </para>
1663 <indexterm zone="llvm llvm-tli-checker">
1664 <primary sortas="b-llvm-tli-checker">llvm-tli-checker</primary>
1665 </indexterm>
1666 </listitem>
1667 </varlistentry>
1668
[11b9fb83]1669 <varlistentry id="llvm-undname">
1670 <term><command>llvm-undname</command></term>
1671 <listitem>
1672 <para>
[4c24eb0a]1673 is a tool to demangle names
[11b9fb83]1674 </para>
1675 <indexterm zone="llvm llvm-undname">
1676 <primary sortas="b-llvm-undname">llvm-undname</primary>
1677 </indexterm>
1678 </listitem>
1679 </varlistentry>
1680
[b7a300f7]1681 <varlistentry id="llvm-xray">
1682 <term><command>llvm-xray</command></term>
1683 <listitem>
1684 <para>
[4c24eb0a]1685 is an implementation of Google's XRay function call tracing system
[b7a300f7]1686 </para>
1687 <indexterm zone="llvm llvm-xray">
1688 <primary sortas="b-llvm-xray">llvm-xray</primary>
1689 </indexterm>
1690 </listitem>
1691 </varlistentry>
1692
[bb6209fc]1693 <varlistentry id="nvptx-arch">
1694 <term><command>nvptx-arch</command></term>
[39dd48b]1695 <listitem>
1696 <para>
[bb6209fc]1697 lists NVIDIA GPUs installed; at runtime it needs
1698 <filename class='libraryfile'>libcuda.so</filename>
1699 which is not a part of BLFS
[39dd48b]1700 </para>
[bb6209fc]1701 <indexterm zone="llvm nvptx-arch">
1702 <primary sortas="b-nvptx-arch">nvptx-arch</primary>
[39dd48b]1703 </indexterm>
1704 </listitem>
1705 </varlistentry>
[9a599135]1706
[abdc2e6]1707 <varlistentry id="opt">
1708 <term><command>opt</command></term>
1709 <listitem>
1710 <para>
[4c24eb0a]1711 is the <application>LLVM</application> optimizer
[abdc2e6]1712 </para>
1713 <indexterm zone="llvm opt">
1714 <primary sortas="b-opt">opt</primary>
1715 </indexterm>
1716 </listitem>
1717 </varlistentry>
1718
[3349c8e]1719 <varlistentry id="sancov">
1720 <term><command>sancov</command></term>
1721 <listitem>
1722 <para>
[4c24eb0a]1723 is the sanitizer coverage processing tool
[3349c8e]1724 </para>
1725 <indexterm zone="llvm sancov">
1726 <primary sortas="b-sancov">sancov</primary>
1727 </indexterm>
1728 </listitem>
1729 </varlistentry>
1730
[b4c31a6]1731 <varlistentry id="sanstats">
1732 <term><command>sanstats</command></term>
1733 <listitem>
1734 <para>
[4c24eb0a]1735 is the sanitizer statistics processing tool
[b4c31a6]1736 </para>
1737 <indexterm zone="llvm sanstats">
1738 <primary sortas="b-sanstats">sanstats</primary>
1739 </indexterm>
1740 </listitem>
1741 </varlistentry>
1742
[70251fc]1743 <varlistentry id="scan-build">
1744 <term><command>scan-build</command></term>
1745 <listitem>
1746 <para>
1747 is a <application>Perl</application> script that invokes the
[4c24eb0a]1748 <application>Clang</application> static analyzer
[70251fc]1749 </para>
1750 <indexterm zone="llvm scan-build">
1751 <primary sortas="b-scan-build">scan-build</primary>
[39dd48b]1752 </indexterm>
1753 </listitem>
1754 </varlistentry>
1755
[9a599135]1756 <varlistentry id="scan-build-py">
1757 <term><command>scan-build-py</command></term>
1758 <listitem>
1759 <para>
1760 is a <application>Python</application> script that invokes the
1761 <application>Clang</application> static analyzer
1762 </para>
1763 <indexterm zone="llvm scan-build-py">
1764 <primary sortas="b-scan-build-py">scan-build-py</primary>
1765 </indexterm>
1766 </listitem>
1767 </varlistentry>
1768
[3349c8e]1769 <varlistentry id="scan-view">
1770 <term><command>scan-view</command></term>
1771 <listitem>
1772 <para>
1773 is a viewer for <application>Clang</application> static analyzer
[4c24eb0a]1774 results
[3349c8e]1775 </para>
1776 <indexterm zone="llvm scan-view">
1777 <primary sortas="b-scan-view">scan-view</primary>
1778 </indexterm>
1779 </listitem>
1780 </varlistentry>
1781
1782 <varlistentry id="verify-uselistorder">
1783 <term><command>verify-uselistorder</command></term>
1784 <listitem>
1785 <para>
1786 is the <application>LLVM</application> tool to verify use-list
[4c24eb0a]1787 order
[3349c8e]1788 </para>
1789 <indexterm zone="llvm verify-uselistorder">
1790 <primary sortas="b-verify-uselistorder">verify-uselistorder</primary>
1791 </indexterm>
1792 </listitem>
1793 </varlistentry>
1794
[599c6d0]1795<!-- Removed in 12.0.0
[39dd48b]1796 <varlistentry id="yaml2obj">
1797 <term><command>yaml2obj</command></term>
1798 <listitem>
1799 <para>
1800 takes a YAML representation of an object file and converts it
[4c24eb0a]1801 to a binary file
[39dd48b]1802 </para>
1803 <indexterm zone="llvm yaml2obj">
1804 <primary sortas="b-yaml2obj">yaml2obj</primary>
[70251fc]1805 </indexterm>
1806 </listitem>
1807 </varlistentry>
[599c6d0]1808-->
[3349c8e]1809<!--
[abdc2e6]1810 <varlistentry id="libllvm">
1811 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
1812 <listitem>
1813 <para>
1814 contains the <application>LLVM</application> API functions.
1815 </para>
1816 <indexterm zone="llvm libllvm">
1817 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
1818 </indexterm>
1819 </listitem>
1820 </varlistentry>
[3349c8e]1821
[abdc2e6]1822 <varlistentry id="libprofile_rt">
1823 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
1824 <listitem>
1825 <para>
1826 is the C, C++ and Objective-C runtime library for
1827 <application>Clang</application>.
1828 </para>
1829 <indexterm zone="llvm libprofile_rt">
1830 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
[7b74537e]1831 </indexterm>
1832 </listitem>
[0f5ca44]1833 </varlistentry>-->
[7b74537e]1834
1835 </variablelist>
[abdc2e6]1836
[7b74537e]1837 </sect2>
1838
1839</sect1>
Note: See TracBrowser for help on using the repository browser.