source: general/prog/llvm.xml@ c39ddc6

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since c39ddc6 was c39ddc6, checked in by Xi Ruoyao <xry111@…>, 6 months ago

llvm: Remove BPF from targets

To use clang with BPF for v4l-utils, libbpf must be installed but it's
not a BLFS package. And I doubt if any BLFS user really uses an IR
remote control on the BLFS system. So let's not make all BLFS users
build something useless.

Note that if both clang and libbpf both exist, v4l-utils will attempt to
use "clang -target bpf" anyway even if -Dbpf=disabled is explicitly
specified (we've got enough surprise from v4l-utils building system
these days!!), so add a note to v4l-utils for people installing non-BLFS
libbpf.

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