source: general/prog/llvm.xml@ 62a5037e

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 9.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 62a5037e was 62a5037e, checked in by Bruce Dubbs <bdubbs@…>, 4 years ago

Update to xterm-353.
Update to mesa-19.3.4.
Update to wayland-1.18.0.
Tag most of xorg (not all drivers) and xorg dependencies.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@22699 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 41.1 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 "31eb9ce73dd2a0f8dcab8319fb03f8fc">
12 <!ENTITY llvm-size "30 MB">
13 <!ENTITY llvm-buildsize "2.1 GB (with Clang, 655 MB installed, add 19 GB for tests)">
14 <!ENTITY llvm-time "30 SBU (with Clang and parallelism=4, add 5.5 SBU for tests)">
15
16 <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
17 <!ENTITY clang-md5sum "13468e4a44940efef1b75e8641752f90">
18 <!ENTITY clang-size "13 MB">
19
20 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
21 <!ENTITY compiler-rt-md5sum "1b39b9b90007a2170ebe77d6214ec581">
22 <!ENTITY compiler-rt-size "1.9 MB">
23]>
24
25<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
26 <?dbhtml filename="llvm.html" ?>
27
28 <sect1info>
29 <othername>$LastChangedBy$</othername>
30 <date>$Date$</date>
31 </sect1info>
32
33 <title>LLVM-&llvm-version;</title>
34
35 <indexterm zone="llvm">
36 <primary sortas="a-LLVM">LLVM</primary>
37 </indexterm>
38
39 <sect2 role="package">
40 <title>Introduction to LLVM</title>
41
42 <para>
43 The <application>LLVM</application> package contains a collection of
44 modular and reusable compiler and toolchain technologies. The Low Level
45 Virtual Machine (LLVM) Core libraries provide a modern source and
46 target-independent optimizer, along with code generation support for many
47 popular CPUs (as well as some less common ones!). These libraries are
48 built around a well specified code representation known as the LLVM
49 intermediate representation ("LLVM IR").
50 </para>
51
52 <para>
53 The optional <application>Clang</application> and <application>Compiler
54 RT</application> packages provide new C, C++, Objective C and Objective
55 C++ front-ends and runtime libraries for the
56 <application>LLVM</application> and are required by some packages which
57 use <application>Rust</application>, for example
58 <application>firefox</application>.
59 </para>
60
61 &lfs91_checked;
62
63 <bridgehead renderas="sect3">Package Information</bridgehead>
64 <itemizedlist spacing="compact">
65 <listitem>
66 <para>
67 Download (HTTP): <ulink url="&llvm-download-http;"/>
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Download (FTP): <ulink url="&llvm-download-ftp;"/>
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 Download MD5 sum: &llvm-md5sum;
78 </para>
79 </listitem>
80 <listitem>
81 <para>
82 Download size: &llvm-size;
83 </para>
84 </listitem>
85 <listitem>
86 <para>
87 Estimated disk space required: &llvm-buildsize;
88 </para>
89 </listitem>
90 <listitem>
91 <para>
92 Estimated build time: &llvm-time;
93 </para>
94 </listitem>
95 </itemizedlist>
96
97 <bridgehead renderas="sect3">Optional Downloads</bridgehead>
98
99 <bridgehead renderas="sect4">Clang</bridgehead>
100 <itemizedlist spacing="compact">
101 <listitem>
102 <para>
103 Download: <ulink url="&clang-download-http;"/>
104 </para>
105 </listitem>
106 <listitem>
107 <para>
108 Download MD5 sum: &clang-md5sum;
109 </para>
110 </listitem>
111 <listitem>
112 <para>
113 Download size: &clang-size;
114 </para>
115 </listitem>
116 </itemizedlist>
117
118 <bridgehead renderas="sect4">Compiler RT</bridgehead>
119 <itemizedlist spacing="compact">
120 <listitem>
121 <para>
122 Download: <ulink url="&compiler-rt-download-http;"/>
123 </para>
124 </listitem>
125 <listitem>
126 <para>
127 Download MD5 sum: &compiler-rt-md5sum;
128 </para>
129 </listitem>
130 <listitem>
131 <para>
132 Download size: &compiler-rt-size;
133 </para>
134 </listitem>
135 </itemizedlist>
136
137<!-- <itemizedlist spacing="compact">
138 <listitem>
139 <para>
140 Optional patch:
141 <ulink url="&patch-root;/compiler-rt-4.0.1-glibc-2.26-1.patch"/>
142 (required if using compiler-rt)
143 </para>
144 </listitem>
145 </itemizedlist>
146-->
147 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
148
149 <!-- cmake is now required -->
150 <bridgehead renderas="sect4">Required</bridgehead>
151 <para role="required">
152 <xref linkend="cmake"/>
153 </para>
154
155 <bridgehead renderas="sect4">Optional</bridgehead>
156 <para role="optional">
157 <xref linkend="doxygen"/>,
158 <xref linkend="graphviz"/>,
159 <xref linkend="libxml2"/>,
160 <xref linkend="python2"/>,
161 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
162 <xref linkend="valgrind"/>,
163 <xref linkend="PyYAML"/>, <!-- for yaml2obj -->
164 <xref linkend="zip"/>,
165 <ulink url="http://www.ocaml.org/">OCaml</ulink>,
166 <ulink url="https://pypi.python.org/pypi/recommonmark">recommonmark</ulink>,
167 <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>, and
168 <ulink url="https://github.com/Z3Prover/z3">Z3</ulink>
169 </para>
170
171 <para condition="html" role="usernotes">User Notes:
172 <ulink url="&blfs-wiki;/llvm"/>
173 </para>
174 </sect2>
175
176 <sect2 role="installation">
177 <title>Installation of LLVM</title>
178
179 <para>
180 If you have downloaded the optional packages, install them into
181 the source tree by running the following commands:
182 </para>
183
184<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.xz -C tools &amp;&amp;
185tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
186
187mv tools/clang-&llvm-version;.src tools/clang &amp;&amp;
188mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
189
190 <para>
191 Fix a problem introduced by Glibc-2.31:
192 </para>
193
194<screen><userinput>sed -e '/ipc_perm, mode/s|^|//|' \
195 -i projects/compiler-rt/lib/sanitizer_common/anitizer_platform_limits_posix.cc</userinput></screen>
196
197 <para>
198 Install <application>LLVM</application> by running the following
199 commands:
200 </para>
201
202<screen><userinput>mkdir -v build &amp;&amp;
203cd build &amp;&amp;
204
205CC=gcc CXX=g++ \
206cmake -DCMAKE_INSTALL_PREFIX=/usr \
207 -DLLVM_ENABLE_FFI=ON \
208 -DCMAKE_BUILD_TYPE=Release \
209 -DLLVM_BUILD_LLVM_DYLIB=ON \
210 -DLLVM_LINK_LLVM_DYLIB=ON \
211 -DLLVM_ENABLE_RTTI=ON \
212 -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
213 -DLLVM_BUILD_TESTS=ON \
214 -Wno-dev -G Ninja .. &amp;&amp;
215ninja</userinput></screen>
216
217 <para>
218 If you have installed <application>Sphinx</application> and
219 <application>recommonmark</application> and wish
220 to generate the html documentation and manual pages, issue the following
221 commands:
222 </para>
223
224<screen remap="doc"><userinput>cmake -DLLVM_ENABLE_SPHINX=ON \
225 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
226 -Wno-dev -G Ninja .. &amp;&amp;
227ninja docs-llvm-html docs-llvm-man</userinput></screen>
228
229 <para>
230 If you have downloaded the optional packages, the clang documentation
231 can be built too:
232 </para>
233
234<screen remap="doc"><userinput>ninja docs-clang-html docs-clang-man</userinput></screen>
235
236 <para>
237 <!-- EDITORS - if you have more than 4 cores, take some offline to measure
238 the elapsed time for the tests. Also, libstdc++.a and perhaps libstdc++fs.a
239 are used by a couple of the link-static tests. -->
240 To test the results, issue: <command>ninja check-all</command>. Tests are
241 built with all <emphasis>available</emphasis> cores, but run using the number
242 of <emphasis>online</emphasis> processors. (The difference is that available
243 cores can be limited using <command>taskset</command>, but taking them offline
244 requires echoing 0 to <filename
245 class="directory">/sys/devices/system/cpu/cpu&lt;N&gt;/online</filename>
246 by the <systemitem class="username">root</systemitem> user and makes them
247 temporarily unusable by all jobs on the machine.)
248 Note that the Sanitizer based tests (387 of more than 38000 tests run)
249 are known to fail.
250
251 </para>
252
253 <para>
254 Now, as the <systemitem class="username">root</systemitem> user:
255 </para>
256
257<screen role="root"><userinput>ninja install</userinput></screen>
258
259 <para>
260 If you have built the the llvm documentation, install it by running the
261 following commands as the <systemitem class="username">root</systemitem>
262 user:
263 </para>
264
265<screen role="root"
266 remap="doc"><userinput>install -v -m644 docs/man/* /usr/share/man/man1 &amp;&amp;
267install -v -d -m755 /usr/share/doc/llvm-&llvm-version;/llvm-html &amp;&amp;
268cp -Rv docs/html/* /usr/share/doc/llvm-&llvm-version;/llvm-html</userinput></screen>
269
270 <para>
271 If you have built the clang documentation, it can be installed in the
272 same way (again as the
273 <systemitem class="username">root</systemitem> user):
274 </para>
275
276<screen role="root"
277 remap="doc"><userinput>install -v -m644 tools/clang/docs/man/* /usr/share/man/man1 &amp;&amp;
278install -v -d -m755 /usr/share/doc/llvm-&llvm-version;/clang-html &amp;&amp;
279cp -Rv tools/clang/docs/html/* /usr/share/doc/llvm-&llvm-version;/clang-html</userinput></screen>
280
281 </sect2>
282
283 <sect2 role="commands">
284 <title>Command Explanations</title>
285
286 <para>
287 <parameter>-DLLVM_ENABLE_FFI=ON</parameter>: This switch enables
288 <application>LLVM</application> to use
289 <application>libffi</application>.
290 </para>
291
292 <para>
293 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>: builds libraries as
294 static and links all of them into an unique shared one. This is the
295 recommended way of building a shared library.
296 </para>
297
298 <para>
299 <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch enables
300 compiler optimizations in order to speed up the code and reduce its size.
301 It also disables some compile checks, not necessary on a production
302 system.
303 </para>
304
305 <para>
306 <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF"</parameter>: This
307 switch enables building for the same target as the host, and also for
308 the r600 AMD GPU used by the Mesa r600 and radeonsi drivers. The BPF
309 target is required to build <xref linkend="v4l-utils"/>. Default is
310 all. You can use a semicolon separated list. Valid targets are: host,
311 X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore, MSP430, NVPTX,
312 SystemZ, AMDGPU, BPF, CppBackend, or all.
313 </para>
314
315 <para>
316 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>: Used in conjunction with
317 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>, this switch enables
318 linking the tools against the shared library instead of the static ones.
319 It also slightly reduces their size and also ensures that llvm-config
320 will correctly use libLLVM-&llvm-majmin-version;.so.
321 </para>
322
323 <para>
324 <parameter>-DLLVM_ENABLE_RTTI=ON</parameter>: Used to build LLVM with
325 run-time type information. This is required for building
326 <xref linkend="mesa"/>.
327 </para>
328
329 <para>
330 <option>-DBUILD_SHARED_LIBS=ON</option>: if used instead of
331 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter> and
332 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>, builds all the
333 <application>LLVM</application> libraries (about 60) as shared
334 libraries instead of static.
335 </para>
336
337 <para>
338 <option>-DLLVM_ENABLE_DOXYGEN</option>: Enables the generation of
339 browsable HTML documentation if you have installed <xref
340 linkend="doxygen"/>. You should run <command>make doxygen-html</command>
341 afterwards, and install the generated documentation manually.
342 </para>
343
344 </sect2>
345
346 <sect2 role="content">
347 <title>Contents</title>
348
349 <segmentedlist>
350 <segtitle>Installed Programs</segtitle>
351 <segtitle>Installed Libraries</segtitle>
352 <segtitle>Installed Directories</segtitle>
353
354 <seglistitem>
355 <seg>
356 bugpoint, c-index-test, clang, clang++ (symlinks to
357 clang-&lt;version&gt;), clang-&lt;version&gt;, clang-check, clang-cl,
358 clang-cpp (last two symlinks to clang), clang-format, clang-func-mapping
359 clang-import-test, clang-offload-bundler, clang-refactor, clang-rename,
360 diagtool, dsymutil, git-clang-format, hmap-tool, llc, lli, llvm-ar,
361 llvm-as, llvm-bcanalyzer, llvm-cat, llvm-cfi-verify, llvm-config,
362 llvm-cov, llvm-c-test, llvm-cvtres, llvm-cxxdump, llvm-cxxfilt,
363 llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar), llvm-dwarfdump,
364 llvm-dwp, llvm-exegenesis, llvm-extract, llvm-lib (symlink to llvm-ar),
365 llvm-link, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-modextract,
366 llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump, llvm-opt-report,
367 llvm-pdbutil, llvm-profdata, llvm-ranlib (symlink to llvm-ar), llvm-rc,
368 llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-rtdyld,
369 llvm-size, llvm-split, llvm-stress, llvm-strings, llvm-strip (symlink
370 to llvm-objcopy), llvm-symbolizer, llvm-tblgen, llvm-undname, llvm-xray,
371 obj2yaml, opt, sancov, sanstats, scan-build, scan-view,
372 verify-uselistorder, and yaml2obj
373 </seg>
374 <seg>
375 libLLVM.so,
376 libLLVM*.a (75 libraries),
377 libLTO.so,
378 libclang.so,
379 and libclang*.a (63 libraries)
380 </seg>
381 <seg>
382 /usr/include/{clang,clang-c,llvm,llvm-c},
383 /usr/lib/{clang,cmake/{clang,llvm}},
384 /usr/share/{clang,opt-viewer,scan-build,scan-view}, and
385 /usr/share/doc/llvm-&llvm-version;}
386 </seg>
387 </seglistitem>
388 </segmentedlist>
389
390 <variablelist>
391 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
392 <?dbfo list-presentation="list"?>
393 <?dbhtml list-presentation="table"?>
394
395 <varlistentry id="bugpoint">
396 <term><command>bugpoint</command></term>
397 <listitem>
398 <para>
399 is the automatic test case reduction tool.
400 </para>
401 <indexterm zone="llvm bugpoint">
402 <primary sortas="b-bugpoint">bugpoint</primary>
403 </indexterm>
404 </listitem>
405 </varlistentry>
406
407 <varlistentry id="c-index-test">
408 <term><command>c-index-test</command></term>
409 <listitem>
410 <para>
411 is used to test the libclang API and demonstrate its usage.
412 </para>
413 <indexterm zone="llvm c-index-test">
414 <primary sortas="b-c-index-test">c-index-test</primary>
415 </indexterm>
416 </listitem>
417 </varlistentry>
418
419 <varlistentry id="clang">
420 <term><command>clang</command></term>
421 <listitem>
422 <para>
423 is the <application>Clang</application> C, C++,
424 and Objective-C compiler.
425 </para>
426 <indexterm zone="llvm clang">
427 <primary sortas="b-clang">clang</primary>
428 </indexterm>
429 </listitem>
430 </varlistentry>
431
432 <varlistentry id="clang-check">
433 <term><command>clang-check</command></term>
434 <listitem>
435 <para>
436 is a tool to perform static code analysis and display Abstract
437 Syntax Trees (AST).
438 </para>
439 <indexterm zone="llvm clang-check">
440 <primary sortas="b-clang-check">clang-check</primary>
441 </indexterm>
442 </listitem>
443 </varlistentry>
444
445 <varlistentry id="clang-format">
446 <term><command>clang-format</command></term>
447 <listitem>
448 <para>
449 is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf
450 code.
451 </para>
452 <indexterm zone="llvm clang-format">
453 <primary sortas="b-clang-format">clang-format</primary>
454 </indexterm>
455 </listitem>
456 </varlistentry>
457
458 <varlistentry id="clang-func-mapping">
459 <term><command>clang-func-mapping</command></term>
460 <listitem>
461 <para>
462 collects the name and location of all function definitions in the
463 source files.
464 </para>
465 <indexterm zone="llvm clang-func-mapping">
466 <primary sortas="b-clang-func-mapping">clang-func-mapping</primary>
467 </indexterm>
468 </listitem>
469 </varlistentry>
470
471 <varlistentry id="clang-offload-bundler">
472 <term><command>clang-offload-bundler</command></term>
473 <listitem>
474 <para>
475 is a tool to bundle/unbundle openMP offloaded files associated with
476 a common source file.
477 </para>
478 <indexterm zone="llvm clang-offload-bundler">
479 <primary sortas="b-clang-offload-bundler">clang-offload-bundler</primary>
480 </indexterm>
481 </listitem>
482 </varlistentry>
483
484 <varlistentry id="clang-refactor">
485 <term><command>clang-refactor</command></term>
486 <listitem>
487 <para>
488 is a Clang-based refactoring tool for C, C++ and Objective.
489 </para>
490 <indexterm zone="llvm clang-refactor">
491 <primary sortas="b-clang-refactor">clang-refactor</primary>
492 </indexterm>
493 </listitem>
494 </varlistentry>
495
496 <varlistentry id="clang-rename">
497 <term><command>clang-rename</command></term>
498 <listitem>
499 <para>
500 is a tool to rename symbols in C/C++ programs.
501 </para>
502 <indexterm zone="llvm clang-rename">
503 <primary sortas="b-clang-rename">clang-rename</primary>
504 </indexterm>
505 </listitem>
506 </varlistentry>
507
508 <varlistentry id="diagtool">
509 <term><command>diagtool</command></term>
510 <listitem>
511 <para>
512 is a combination of tools for dealing with diagnostics in clang.
513 </para>
514 <indexterm zone="llvm diagtool">
515 <primary sortas="b-diagtool">diagtool</primary>
516 </indexterm>
517 </listitem>
518 </varlistentry>
519
520 <varlistentry id="dsymutil">
521 <term><command>dsymutil</command></term>
522 <listitem>
523 <para>
524 is a tool used to manipulate archived DWARF debug symbol files,
525 compatible with the Darwin command <command>dsymutil</command>.
526 </para>
527 <indexterm zone="llvm dsymutil">
528 <primary sortas="b-dsymutil">dsymutil</primary>
529 </indexterm>
530 </listitem>
531 </varlistentry>
532
533 <varlistentry id="git-clang-format">
534 <term><command>git-clang-format</command></term>
535 <listitem>
536 <para>
537 runs clang-format on git generated patches (requires
538 <xref linkend="git"/>)
539 </para>
540 <indexterm zone="llvm git-clang-format">
541 <primary sortas="b-git-clang-format">git-clang-format</primary>
542 </indexterm>
543 </listitem>
544 </varlistentry>
545
546 <varlistentry id="hmaptool">
547 <term><command>hmaptool</command></term>
548 <listitem>
549 <para>
550 is a Python tool to dump and construct header maps.
551 </para>
552 <indexterm zone="llvm hmaptool">
553 <primary sortas="b-hmaptool">hmaptool</primary>
554 </indexterm>
555 </listitem>
556 </varlistentry>
557
558 <varlistentry id="llc">
559 <term><command>llc</command></term>
560 <listitem>
561 <para>
562 is the <application>LLVM</application> static compiler.
563 </para>
564 <indexterm zone="llvm llc">
565 <primary sortas="b-llc">llc</primary>
566 </indexterm>
567 </listitem>
568 </varlistentry>
569
570 <varlistentry id="lli">
571 <term><command>lli</command></term>
572 <listitem>
573 <para>
574 is used to directly execute programs from
575 <application>LLVM</application> bitcode.
576 </para>
577 <indexterm zone="llvm lli">
578 <primary sortas="b-lli">lli</primary>
579 </indexterm>
580 </listitem>
581 </varlistentry>
582
583 <varlistentry id="llvm-ar">
584 <term><command>llvm-ar</command></term>
585 <listitem>
586 <para>
587 is the <application>LLVM</application> archiver.
588 </para>
589 <indexterm zone="llvm llvm-ar">
590 <primary sortas="b-llvm-ar">llvm-ar</primary>
591 </indexterm>
592 </listitem>
593 </varlistentry>
594
595 <varlistentry id="llvm-as">
596 <term><command>llvm-as</command></term>
597 <listitem>
598 <para>
599 is the <application>LLVM</application> assembler.
600 </para>
601 <indexterm zone="llvm llvm-as">
602 <primary sortas="b-llvm-as">llvm-as</primary>
603 </indexterm>
604 </listitem>
605 </varlistentry>
606
607 <varlistentry id="llvm-bcanalyzer">
608 <term><command>llvm-bcanalyzer</command></term>
609 <listitem>
610 <para>
611 is the <application>LLVM</application> bitcode analyzer.
612 </para>
613 <indexterm zone="llvm llvm-bcanalyzer">
614 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
615 </indexterm>
616 </listitem>
617 </varlistentry>
618
619 <varlistentry id="llvm-cat">
620 <term><command>llvm-cat</command></term>
621 <listitem>
622 <para>
623 is a tool to concatenate llvm modules.
624 </para>
625 <indexterm zone="llvm llvm-cat">
626 <primary sortas="b-llvm-cat">llvm-cat</primary>
627 </indexterm>
628 </listitem>
629 </varlistentry>
630
631 <varlistentry id="llvm-cfi-verify">
632 <term><command>llvm-cfi-verify</command></term>
633 <listitem>
634 <para>
635 identifies whether Control Flow Integrity protects all indirect
636 control flow instructions in the provided object file, DSO, or
637 binary.
638 </para>
639 <indexterm zone="llvm llvm-cfi-verify">
640 <primary sortas="b-llvm-cfi-verify">llvm-cfi-verify</primary>
641 </indexterm>
642 </listitem>
643 </varlistentry>
644
645 <varlistentry id="llvm-config">
646 <term><command>llvm-config</command></term>
647 <listitem>
648 <para>
649 Prints <application>LLVM</application> compilation options.
650 </para>
651 <indexterm zone="llvm llvm-config">
652 <primary sortas="b-llvm-config">llvm-config</primary>
653 </indexterm>
654 </listitem>
655 </varlistentry>
656
657 <varlistentry id="llvm-cov">
658 <term><command>llvm-cov</command></term>
659 <listitem>
660 <para>
661 is used to emit coverage information.
662 </para>
663 <indexterm zone="llvm llvm-cov">
664 <primary sortas="b-llvm-cov">llvm-cov</primary>
665 </indexterm>
666 </listitem>
667 </varlistentry>
668
669 <varlistentry id="llvm-c-test">
670 <term><command>llvm-c-test</command></term>
671 <listitem>
672 <para>
673 is a bytecode disassembler.
674 </para>
675 <indexterm zone="llvm llvm-c-test">
676 <primary sortas="b-llvm-c-test">llvm-c-test</primary>
677 </indexterm>
678 </listitem>
679 </varlistentry>
680
681 <varlistentry id="llvm-cvtres">
682 <term><command>llvm-cvtres</command></term>
683 <listitem>
684 <para>
685 is a tool to convert Microsoft resource files to COFF.
686 </para>
687 <indexterm zone="llvm llvm-cvtres">
688 <primary sortas="b-llvm-cvtres">llvm-cvtres</primary>
689 </indexterm>
690 </listitem>
691 </varlistentry>
692
693 <varlistentry id="llvm-cxxdump">
694 <term><command>llvm-cxxdump</command></term>
695 <listitem>
696 <para>
697 is used as a C++ ABI Data Dumper.
698 </para>
699 <indexterm zone="llvm llvm-cxxdump">
700 <primary sortas="b-llvm-cxxdump">llvm-cxxdump</primary>
701 </indexterm>
702 </listitem>
703 </varlistentry>
704
705 <varlistentry id="llvm-cxxfilt">
706 <term><command>llvm-cxxfilt</command></term>
707 <listitem>
708 <para>
709 is used to demangle C++ symbols in llvm code.
710 </para>
711 <indexterm zone="llvm llvm-cxxfilt">
712 <primary sortas="b-llvm-cxxfilt">llvm-cxxfilt</primary>
713 </indexterm>
714 </listitem>
715 </varlistentry>
716
717 <varlistentry id="llvm-diff">
718 <term><command>llvm-diff</command></term>
719 <listitem>
720 <para>
721 is the <application>LLVM</application> structural
722 '<command>diff</command>'.
723 </para>
724 <indexterm zone="llvm llvm-diff">
725 <primary sortas="b-llvm-diff">llvm-diff</primary>
726 </indexterm>
727 </listitem>
728 </varlistentry>
729
730 <varlistentry id="llvm-dis">
731 <term><command>llvm-dis</command></term>
732 <listitem>
733 <para>
734 is the <application>LLVM</application> disassembler.
735 </para>
736 <indexterm zone="llvm llvm-dis">
737 <primary sortas="b-llvm-dis">llvm-dis</primary>
738 </indexterm>
739 </listitem>
740 </varlistentry>
741
742 <varlistentry id="llvm-dwarfdump">
743 <term><command>llvm-dwarfdump</command></term>
744 <listitem>
745 <para>
746 prints the content of DWARF sections in object files.
747 </para>
748 <indexterm zone="llvm llvm-dwarfdump">
749 <primary sortas="b-llvm-dwarfdump">llvm-dwarfdump</primary>
750 </indexterm>
751 </listitem>
752 </varlistentry>
753
754 <varlistentry id="llvm-dwp">
755 <term><command>llvm-dwp</command></term>
756 <listitem>
757 <para>
758 merges split DWARF files.
759 </para>
760 <indexterm zone="llvm llvm-dwp">
761 <primary sortas="b-llvm-dwp">llvm-dwp</primary>
762 </indexterm>
763 </listitem>
764 </varlistentry>
765
766 <varlistentry id="llvm-exegesis">
767 <term><command>llvm-exegesis</command></term>
768 <listitem>
769 <para>
770 is a benchmarking tool that uses information available in LLVM to
771 measure host machine instruction characteristics like latency or
772 port decomposition.
773 </para>
774 <indexterm zone="llvm llvm-exegesis">
775 <primary sortas="b-llvm-exegesis">llvm-exegesis</primary>
776 </indexterm>
777 </listitem>
778 </varlistentry>
779
780 <varlistentry id="llvm-extract">
781 <term><command>llvm-extract</command></term>
782 <listitem>
783 <para>
784 is used to extract a function from an
785 <application>LLVM</application> module.
786 </para>
787 <indexterm zone="llvm llvm-extract">
788 <primary sortas="b-llvm-extract">llvm-extract</primary>
789 </indexterm>
790 </listitem>
791 </varlistentry>
792
793 <varlistentry id="llvm-link">
794 <term><command>llvm-link</command></term>
795 <listitem>
796 <para>
797 is the <application>LLVM</application> linker.
798 </para>
799 <indexterm zone="llvm llvm-link">
800 <primary sortas="b-llvm-link">llvm-link</primary>
801 </indexterm>
802 </listitem>
803 </varlistentry>
804
805 <varlistentry id="llvm-lto">
806 <term><command>llvm-lto</command></term>
807 <listitem>
808 <para>
809 is the <application>LLVM</application> LTO (link time optimization)
810 linker.
811 </para>
812 <indexterm zone="llvm llvm-lto">
813 <primary sortas="b-llvm-lto">llvm-lto</primary>
814 </indexterm>
815 </listitem>
816 </varlistentry>
817
818 <varlistentry id="llvm-lto2">
819 <term><command>llvm-lto2</command></term>
820 <listitem>
821 <para>
822 is a test harness for the resolution based LTO interface.
823 </para>
824 <indexterm zone="llvm llvm-lto2">
825 <primary sortas="b-llvm-lto2">llvm-lto2</primary>
826 </indexterm>
827 </listitem>
828 </varlistentry>
829
830 <varlistentry id="llvm-mc">
831 <term><command>llvm-mc</command></term>
832 <listitem>
833 <para>
834 is a standalone machine code assembler/disassembler.
835 </para>
836 <indexterm zone="llvm llvm-mc">
837 <primary sortas="b-llvm-mc">llvm-mc</primary>
838 </indexterm>
839 </listitem>
840 </varlistentry>
841
842 <varlistentry id="llvm-mca">
843 <term><command>llvm-mca</command></term>
844 <listitem>
845 <para>
846 is a is a performance analysis tool to statically measure the
847 performance of machine code.
848 </para>
849 <indexterm zone="llvm llvm-mca">
850 <primary sortas="b-llvm-mca">llvm-mca</primary>
851 </indexterm>
852 </listitem>
853 </varlistentry>
854
855<!-- <varlistentry id="llvm-mcmarkup">
856 <term><command>llvm-mcmarkup</command></term>
857 <listitem>
858 <para>
859 is a parser for machine code markup.
860 </para>
861 <indexterm zone="llvm llvm-mcmarkup">
862 <primary sortas="b-llvm-mcmarkup">llvm-mcmarkup</primary>
863 </indexterm>
864 </listitem>
865 </varlistentry>-->
866
867 <varlistentry id="llvm-modextract">
868 <term><command>llvm-modextract</command></term>
869 <listitem>
870 <para>
871 is a tool to extract one module from multimodule bitcode files.
872 </para>
873 <indexterm zone="llvm llvm-modextract">
874 <primary sortas="b-llvm-modextract">llvm-modextract</primary>
875 </indexterm>
876 </listitem>
877 </varlistentry>
878
879 <varlistentry id="llvm-mt">
880 <term><command>llvm-mt</command></term>
881 <listitem>
882 <para>
883 is a tool to generate signed files and catalogs from a
884 side-by-side assembly manifest (used for Microsoft SDK).
885 </para>
886 <indexterm zone="llvm llvm-mt">
887 <primary sortas="b-llvm-mt">llvm-mt</primary>
888 </indexterm>
889 </listitem>
890 </varlistentry>
891
892 <varlistentry id="llvm-nm">
893 <term><command>llvm-nm</command></term>
894 <listitem>
895 <para>
896 is used to list <application>LLVM</application> bitcode
897 and object file's symbol table.
898 </para>
899 <indexterm zone="llvm llvm-nm">
900 <primary sortas="b-llvm-nm">llvm-nm</primary>
901 </indexterm>
902 </listitem>
903 </varlistentry>
904
905 <varlistentry id="llvm-objcopy">
906 <term><command>llvm-objcopy</command></term>
907 <listitem>
908 <para>
909 is LLVM's version of an objcopy tool.
910 </para>
911 <indexterm zone="llvm llvm-objcopy">
912 <primary sortas="b-llvm-objcopy">llvm-objcopy</primary>
913 </indexterm>
914 </listitem>
915 </varlistentry>
916
917 <varlistentry id="llvm-objdump">
918 <term><command>llvm-objdump</command></term>
919 <listitem>
920 <para>
921 is an <application>LLVM</application> object file dumper.
922 </para>
923 <indexterm zone="llvm llvm-objdump">
924 <primary sortas="b-llvm-objdump">llvm-objdump</primary>
925 </indexterm>
926 </listitem>
927 </varlistentry>
928
929 <varlistentry id="llvm-opt-report">
930 <term><command>llvm-opt-report</command></term>
931 <listitem>
932 <para>
933 is a tool to generate an optimization report from YAML optimization
934 record files.
935 </para>
936 <indexterm zone="llvm llvm-opt-report">
937 <primary sortas="b-llvm-opt-report">llvm-opt-report</primary>
938 </indexterm>
939 </listitem>
940 </varlistentry>
941
942 <varlistentry id="llvm-pdbutil">
943 <term><command>llvm-pdbutil</command></term>
944 <listitem>
945 <para>
946 is a PDB (Program Database) dumper. PDB is a Microsoft format.
947 </para>
948 <indexterm zone="llvm llvm-pdbutil">
949 <primary sortas="b-llvm-pdbutil">llvm-pdbutil</primary>
950 </indexterm>
951 </listitem>
952 </varlistentry>
953
954 <varlistentry id="llvm-profdata">
955 <term><command>llvm-profdata</command></term>
956 <listitem>
957 <para>
958 is a small tool to manipulate and print profile data files.
959 </para>
960 <indexterm zone="llvm llvm-profdata">
961 <primary sortas="b-llvm-profdata">llvm-profdata</primary>
962 </indexterm>
963 </listitem>
964 </varlistentry>
965
966 <varlistentry id="llvm-ranlib">
967 <term><command>llvm-ranlib</command></term>
968 <listitem>
969 <para>
970 is used to generate an index for a <application>LLVM</application>
971 archive.
972 </para>
973 <indexterm zone="llvm llvm-ranlib">
974 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
975 </indexterm>
976 </listitem>
977 </varlistentry>
978
979 <varlistentry id="llvm-rc">
980 <term><command>llvm-rc</command></term>
981 <listitem>
982 <para>
983 is a platform-independent tool to compile resource scripts
984 into binary resource files.
985 </para>
986 <indexterm zone="llvm llvm-rc">
987 <primary sortas="b-llvm-rc">llvm-rc</primary>
988 </indexterm>
989 </listitem>
990 </varlistentry>
991
992 <varlistentry id="llvm-readobj">
993 <term><command>llvm-readobj</command></term>
994 <listitem>
995 <para>
996 displays low-level format-specific information about object files.
997 </para>
998 <indexterm zone="llvm llvm-readobj">
999 <primary sortas="b-llvm-readobj">llvm-readobj</primary>
1000 </indexterm>
1001 </listitem>
1002 </varlistentry>
1003
1004 <varlistentry id="llvm-rtdyld">
1005 <term><command>llvm-rtdyld</command></term>
1006 <listitem>
1007 <para>
1008 is the <application>LLVM</application> MC-JIT tool.
1009 </para>
1010 <indexterm zone="llvm llvm-rtdyld">
1011 <primary sortas="b-llvm-rtdyld">llvm-rtdyld</primary>
1012 </indexterm>
1013 </listitem>
1014 </varlistentry>
1015
1016 <varlistentry id="llvm-size">
1017 <term><command>llvm-size</command></term>
1018 <listitem>
1019 <para>
1020 is the <application>LLVM</application> object size dumper.
1021 </para>
1022 <indexterm zone="llvm llvm-size">
1023 <primary sortas="b-llvm-size">llvm-size</primary>
1024 </indexterm>
1025 </listitem>
1026 </varlistentry>
1027
1028 <varlistentry id="llvm-split">
1029 <term><command>llvm-split</command></term>
1030 <listitem>
1031 <para>
1032 is the <application>LLVM</application> module splitter.
1033 </para>
1034 <indexterm zone="llvm llvm-split">
1035 <primary sortas="b-llvm-split">llvm-split</primary>
1036 </indexterm>
1037 </listitem>
1038 </varlistentry>
1039
1040 <varlistentry id="llvm-stress">
1041 <term><command>llvm-stress</command></term>
1042 <listitem>
1043 <para>
1044 is used to generate random
1045 <filename class="extension">.ll</filename> files.
1046 </para>
1047 <indexterm zone="llvm llvm-stress">
1048 <primary sortas="b-llvm-stress">llvm-stress</primary>
1049 </indexterm>
1050 </listitem>
1051 </varlistentry>
1052
1053 <varlistentry id="llvm-strings">
1054 <term><command>llvm-strings</command></term>
1055 <listitem>
1056 <para>
1057 print strings found in a binary (object file, executable, or
1058 archive library).
1059 </para>
1060 <indexterm zone="llvm llvm-strings">
1061 <primary sortas="b-llvm-strings">llvm-strings</primary>
1062 </indexterm>
1063 </listitem>
1064 </varlistentry>
1065
1066 <varlistentry id="llvm-symbolizer">
1067 <term><command>llvm-symbolizer</command></term>
1068 <listitem>
1069 <para>
1070 converts adresses into source code locations.
1071 </para>
1072 <indexterm zone="llvm llvm-symbolizer">
1073 <primary sortas="b-llvm-symbolizer">llvm-symbolizer</primary>
1074 </indexterm>
1075 </listitem>
1076 </varlistentry>
1077
1078 <varlistentry id="llvm-tblgen">
1079 <term><command>llvm-tblgen</command></term>
1080 <listitem>
1081 <para>
1082 is the <application>LLVM</application> Target Description
1083 To C++ Code Generator.
1084 </para>
1085 <indexterm zone="llvm llvm-tblgen">
1086 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
1087 </indexterm>
1088 </listitem>
1089 </varlistentry>
1090
1091 <varlistentry id="llvm-undname">
1092 <term><command>llvm-undname</command></term>
1093 <listitem>
1094 <para>
1095 is a tool to demangle names.
1096 </para>
1097 <indexterm zone="llvm llvm-undname">
1098 <primary sortas="b-llvm-undname">llvm-undname</primary>
1099 </indexterm>
1100 </listitem>
1101 </varlistentry>
1102
1103 <varlistentry id="llvm-xray">
1104 <term><command>llvm-xray</command></term>
1105 <listitem>
1106 <para>
1107 is an implementation of Google's XRay function call tracing system.
1108 </para>
1109 <indexterm zone="llvm llvm-xray">
1110 <primary sortas="b-llvm-xray">llvm-xray</primary>
1111 </indexterm>
1112 </listitem>
1113 </varlistentry>
1114
1115 <varlistentry id="obj2yaml">
1116 <term><command>obj2yaml</command></term>
1117 <listitem>
1118 <para>
1119 takes an object file, and produces a YAML representation of the
1120 file.
1121 </para>
1122 <indexterm zone="llvm obj2yaml">
1123 <primary sortas="b-obj2yaml">obj2yaml</primary>
1124 </indexterm>
1125 </listitem>
1126 </varlistentry>
1127
1128 <varlistentry id="opt">
1129 <term><command>opt</command></term>
1130 <listitem>
1131 <para>
1132 is the <application>LLVM</application> optimizer.
1133 </para>
1134 <indexterm zone="llvm opt">
1135 <primary sortas="b-opt">opt</primary>
1136 </indexterm>
1137 </listitem>
1138 </varlistentry>
1139
1140 <varlistentry id="sancov">
1141 <term><command>sancov</command></term>
1142 <listitem>
1143 <para>
1144 is the sanitizer coverage processing tool.
1145 </para>
1146 <indexterm zone="llvm sancov">
1147 <primary sortas="b-sancov">sancov</primary>
1148 </indexterm>
1149 </listitem>
1150 </varlistentry>
1151
1152 <varlistentry id="sanstats">
1153 <term><command>sanstats</command></term>
1154 <listitem>
1155 <para>
1156 is the sanitizer statistics processing tool.
1157 </para>
1158 <indexterm zone="llvm sanstats">
1159 <primary sortas="b-sanstats">sanstats</primary>
1160 </indexterm>
1161 </listitem>
1162 </varlistentry>
1163
1164 <varlistentry id="scan-build">
1165 <term><command>scan-build</command></term>
1166 <listitem>
1167 <para>
1168 is a <application>Perl</application> script that invokes the
1169 <application>Clang</application> static analyzer.
1170 </para>
1171 <indexterm zone="llvm scan-build">
1172 <primary sortas="b-scan-build">scan-build</primary>
1173 </indexterm>
1174 </listitem>
1175 </varlistentry>
1176
1177 <varlistentry id="scan-view">
1178 <term><command>scan-view</command></term>
1179 <listitem>
1180 <para>
1181 is a viewer for <application>Clang</application> static analyzer
1182 results.
1183 </para>
1184 <indexterm zone="llvm scan-view">
1185 <primary sortas="b-scan-view">scan-view</primary>
1186 </indexterm>
1187 </listitem>
1188 </varlistentry>
1189
1190 <varlistentry id="verify-uselistorder">
1191 <term><command>verify-uselistorder</command></term>
1192 <listitem>
1193 <para>
1194 is the <application>LLVM</application> tool to verify use-list
1195 order.
1196 </para>
1197 <indexterm zone="llvm verify-uselistorder">
1198 <primary sortas="b-verify-uselistorder">verify-uselistorder</primary>
1199 </indexterm>
1200 </listitem>
1201 </varlistentry>
1202
1203 <varlistentry id="yaml2obj">
1204 <term><command>yaml2obj</command></term>
1205 <listitem>
1206 <para>
1207 takes a YAML representation of an object file and converts it
1208 to a binary file.
1209 </para>
1210 <indexterm zone="llvm yaml2obj">
1211 <primary sortas="b-yaml2obj">yaml2obj</primary>
1212 </indexterm>
1213 </listitem>
1214 </varlistentry>
1215<!--
1216 <varlistentry id="libllvm">
1217 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
1218 <listitem>
1219 <para>
1220 contains the <application>LLVM</application> API functions.
1221 </para>
1222 <indexterm zone="llvm libllvm">
1223 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
1224 </indexterm>
1225 </listitem>
1226 </varlistentry>
1227
1228 <varlistentry id="libprofile_rt">
1229 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
1230 <listitem>
1231 <para>
1232 is the C, C++ and Objective-C runtime library for
1233 <application>Clang</application>.
1234 </para>
1235 <indexterm zone="llvm libprofile_rt">
1236 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
1237 </indexterm>
1238 </listitem>
1239 </varlistentry>-->
1240
1241 </variablelist>
1242
1243 </sect2>
1244
1245</sect1>
Note: See TracBrowser for help on using the repository browser.