source: general/prog/llvm.xml@ 0fb7167

12.2 gimp3 ken/TL2024 lazarus trunk xry111/for-12.3 xry111/spidermonkey128
Last change on this file since 0fb7167 was df39bac, checked in by Xi Ruoyao <xry111@…>, 6 months ago

llvm: llvm-tapi-diff and llvm-remarkutil are no longer installed with LLVM 18

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