source: general/prog/llvm.xml@ 403aae58

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

llvm: Run tests with core dump disabled, and note failures with Glibc-2.38

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