source: general/prog/llvm.xml@ 33cbf497

trunk
Last change on this file since 33cbf497 was 21cc0cff, checked in by Xi Ruoyao <xry111@…>, 3 weeks ago

llvm: Correct the dependency and comment out the command for docs

BLFS is already only barely maintainable. Let's not add 4 packages for
LLVM docs.

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