source: general/prog/llvm.xml@ 9f6cca8e

12.2 lazarus trunk
Last change on this file since 9f6cca8e was c8248449, checked in by Xi Ruoyao <xry111@…>, 4 weeks ago

llvm: Document test failures triggered by Glibc-2.40

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