source: general/prog/llvm.xml@ 72592375

10.0 10.1 11.0 ken/refactor-virt lazarus qt5new trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 72592375 was 72592375, checked in by Douglas R. Reno <renodr@…>, 15 months ago

Tags, test suite updates for llvm/valgrind, and a typo fix

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

  • Property mode set to 100644
File size: 45.7 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 "71c68c526cbbf1674b5aafc5542b336c">
12 <!ENTITY llvm-size "34 MB">
13 <!ENTITY llvm-buildsize "2.8 GB (with Clang, 659 MB installed, add 16 GB for tests)">
14 <!ENTITY llvm-time "30 SBU (with Clang and parallelism=4, add 15 SBU for tests)">
15
16 <!ENTITY clang-download-http "&llvm-url;/clang-&llvm-version;.src.tar.xz">
17 <!ENTITY clang-md5sum "6c8b56f531876fd24e06257a2d8ce422">
18 <!ENTITY clang-size "14 MB">
19
20 <!ENTITY compiler-rt-download-http "&llvm-url;/compiler-rt-&llvm-version;.src.tar.xz">
21 <!ENTITY compiler-rt-md5sum "970835d14e9c08a68c4b2ff3931bada7">
22 <!ENTITY compiler-rt-size "2.0 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 &lfs10_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 <bridgehead renderas="sect4">Required</bridgehead>
150 <para role="required">
151 <xref linkend="cmake"/>
152 </para>
153
154 <bridgehead renderas="sect4">Optional</bridgehead>
155 <para role="optional">
156 <xref linkend="doxygen"/>,
157 <xref linkend="git"/>,
158 <xref linkend="graphviz"/>,
159 <xref linkend="libxml2"/>,
160 <xref linkend="python2"/>,
161 <xref linkend="rsync"/> (for tests),
162 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
163 <xref linkend="valgrind"/>,
164 <xref linkend="PyYAML"/>, <!-- for yaml2obj -->
165 <xref linkend="zip"/>,
166 <ulink url="https://ocaml.org/">OCaml</ulink>,
167 <ulink url="https://pypi.org/project/psutil/">psutil</ulink>,
168 <ulink url="https://pypi.python.org/pypi/recommonmark">recommonmark</ulink>,
169 <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>, and
170 <ulink url="https://github.com/Z3Prover/z3">Z3</ulink>
171 </para>
172
173 <para condition="html" role="usernotes">User Notes:
174 <ulink url="&blfs-wiki;/llvm"/>
175 </para>
176 </sect2>
177
178 <sect2 role="installation">
179 <title>Installation of LLVM</title>
180
181 <para>
182 If you have downloaded the optional packages, install them into
183 the source tree by running the following commands:
184 </para>
185
186<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.xz -C tools &amp;&amp;
187tar -xf ../compiler-rt-&llvm-version;.src.tar.xz -C projects &amp;&amp;
188
189mv tools/clang-&llvm-version;.src tools/clang &amp;&amp;
190mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt</userinput></screen>
191
192 <para>
193 Install <application>LLVM</application> by running the following
194 commands:
195 </para>
196
197<screen><userinput>mkdir -v build &amp;&amp;
198cd build &amp;&amp;
199
200CC=gcc CXX=g++ \
201cmake -DCMAKE_INSTALL_PREFIX=/usr \
202 -DLLVM_ENABLE_FFI=ON \
203 -DCMAKE_BUILD_TYPE=Release \
204 -DLLVM_BUILD_LLVM_DYLIB=ON \
205 -DLLVM_LINK_LLVM_DYLIB=ON \
206 -DLLVM_ENABLE_RTTI=ON \
207 -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
208 -DLLVM_BUILD_TESTS=ON \
209 -Wno-dev -G Ninja .. &amp;&amp;
210ninja</userinput></screen>
211
212 <para>
213 If you have installed <application>Sphinx</application> and
214 <application>recommonmark</application> and wish
215 to generate the html documentation and manual pages, issue the following
216 commands:
217 </para>
218
219<screen remap="doc"><userinput>cmake -DLLVM_ENABLE_SPHINX=ON \
220 -DSPHINX_WARNINGS_AS_ERRORS=OFF \
221 -Wno-dev -G Ninja .. &amp;&amp;
222ninja docs-llvm-html docs-llvm-man</userinput></screen>
223
224 <para>
225 If you have downloaded the optional packages, the clang documentation
226 can be built too:
227 </para>
228
229<screen remap="doc"><userinput>ninja docs-clang-html docs-clang-man</userinput></screen>
230
231 <para>
232 <!-- EDITORS - if you have more than 4 cores, take some offline to measure
233 the elapsed time for the tests. Also, libstdc++.a and perhaps libstdc++fs.a
234 are used by a couple of the link-static tests. -->
235 To test the results, issue: <command>ninja check-all</command>. Tests are
236 built with all <emphasis>available</emphasis> cores, but run using the number
237 of <emphasis>online</emphasis> processors. (The difference is that available
238 cores can be limited using <command>taskset</command>, but taking them offline
239 requires echoing 0 to <filename
240 class="directory">/sys/devices/system/cpu/cpu&lt;N&gt;/online</filename>
241 by the <systemitem class="username">root</systemitem> user and makes them
242 temporarily unusable by all jobs on the machine.)
243 Note that the Sanitizer based tests (6 of more than 41000 tests run)
244 are known to fail.
245
246 </para>
247
248 <para>
249 Now, as the <systemitem class="username">root</systemitem> user:
250 </para>
251
252<screen role="root"><userinput>ninja install</userinput></screen>
253
254 <para>
255 If you have built the the llvm documentation, install it by running the
256 following commands as the <systemitem class="username">root</systemitem>
257 user:
258 </para>
259
260<screen role="root"
261 remap="doc"><userinput>install -v -m644 docs/man/* /usr/share/man/man1 &amp;&amp;
262install -v -d -m755 /usr/share/doc/llvm-&llvm-version;/llvm-html &amp;&amp;
263cp -Rv docs/html/* /usr/share/doc/llvm-&llvm-version;/llvm-html</userinput></screen>
264
265 <para>
266 If you have built the clang documentation, it can be installed in the
267 same way (again as the
268 <systemitem class="username">root</systemitem> user):
269 </para>
270
271<screen role="root"
272 remap="doc"><userinput>install -v -m644 tools/clang/docs/man/* /usr/share/man/man1 &amp;&amp;
273install -v -d -m755 /usr/share/doc/llvm-&llvm-version;/clang-html &amp;&amp;
274cp -Rv tools/clang/docs/html/* /usr/share/doc/llvm-&llvm-version;/clang-html</userinput></screen>
275
276 </sect2>
277
278 <sect2 role="commands">
279 <title>Command Explanations</title>
280
281 <para>
282 <parameter>-DLLVM_ENABLE_FFI=ON</parameter>: This switch enables
283 <application>LLVM</application> to use
284 <application>libffi</application>.
285 </para>
286
287 <para>
288 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>: builds libraries as
289 static and links all of them into an unique shared one. This is the
290 recommended way of building a shared library.
291 </para>
292
293 <para>
294 <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch enables
295 compiler optimizations in order to speed up the code and reduce its size.
296 It also disables some compile checks which are not necessary on a
297 production system.
298 </para>
299
300 <para>
301 <parameter>-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF"</parameter>: This
302 switch enables building for the same target as the host, and also for
303 the r600 AMD GPU used by the Mesa r600 and radeonsi drivers. The BPF
304 target is required to build <xref linkend="v4l-utils"/>. Default is
305 all. You can use a semicolon separated list. Valid targets are: host,
306 X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore, MSP430, NVPTX,
307 SystemZ, AMDGPU, BPF, CppBackend, or all.
308 </para>
309
310 <para>
311 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>: Used in conjunction with
312 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter>, this switch enables
313 linking the tools against the shared library instead of the static ones.
314 It also slightly reduces their size and also ensures that llvm-config
315 will correctly use libLLVM-&llvm-majmin-version;.so.
316 </para>
317
318 <para>
319 <parameter>-DLLVM_ENABLE_RTTI=ON</parameter>: Used to build LLVM with
320 run-time type information. This is required for building
321 <xref linkend="mesa"/>.
322 </para>
323
324 <para>
325 <option>-DBUILD_SHARED_LIBS=ON</option>: if used instead of
326 <parameter>-DLLVM_BUILD_LLVM_DYLIB=ON</parameter> and
327 <parameter>-DLLVM_LINK_LLVM_DYLIB=ON</parameter>, builds all the
328 <application>LLVM</application> libraries (about 60) as shared
329 libraries instead of static.
330 </para>
331
332 <para>
333 <option>-DLLVM_ENABLE_DOXYGEN</option>: Enables the generation of
334 browsable HTML documentation if you have installed <xref
335 linkend="doxygen"/>. You should run <command>make doxygen-html</command>
336 afterwards, and install the generated documentation manually.
337 </para>
338
339 </sect2>
340
341 <sect2 role="content">
342 <title>Contents</title>
343
344 <segmentedlist>
345 <segtitle>Installed Programs</segtitle>
346 <segtitle>Installed Libraries</segtitle>
347 <segtitle>Installed Directories</segtitle>
348
349 <seglistitem>
350 <seg>
351 bugpoint, c-index-test, clang, clang++ (symlinks to
352 clang-&lt;version&gt;), clang-&lt;version&gt;, clang-check, clang-cl,
353 clang-cpp (last two symlinks to clang), clang-format, clang-extdef-mapping,
354 clang-import-test, clang-offload-bundler, clang-offload-wrapper,
355 clang-refactor, clang-rename, clang-scan-deps,
356 diagtool, dsymutil, git-clang-format, hmap-tool, llc, lli,
357 llvm-addr2line, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-cat,
358 llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres,
359 llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap,
360 llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar), llvm-dwarfdump,
361 llvm-dwp, llvm-elfabi, llvm-exegenesis, llvm-extract, llvm-ifs,
362 llvm-install-name-tool (symlink to llvm-objcopy), llvm-jitlink,
363 llvm-lib (symlink to llvm-ar), llvm-link, llvm-lipo, llvm-lto,
364 llvm-lto2, llvm-mc, llvm-mca, llvm-modextract,
365 llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump, llvm-opt-report,
366 llvm-pdbutil, llvm-profdata, llvm-ranlib (symlink to llvm-ar), llvm-rc,
367 llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-reduce,
368 llvm-rtdyld, llvm-size, llvm-split, llvm-stress, llvm-strings,
369 llvm-strip (symlink to llvm-objcopy), llvm-symbolizer, llvm-tblgen,
370 llvm-undname, llvm-xray, obj2yaml, opt, sancov, sanstats, scan-build,
371 scan-view, verify-uselistorder, and yaml2obj
372 </seg>
373 <seg>
374 libLLVM.so,
375 libLLVM*.a (75 libraries),
376 libLTO.so,
377 libRemarks.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-extdef-mapping">
446 <term><command>clang-extdef-mapping</command></term>
447 <listitem>
448 <para>
449 is a tool to collect the USR name and location of external
450 definitions in a source file.
451 </para>
452 <indexterm zone="llvm clang-extdef-mapping">
453 <primary sortas="b-clang-extdef-mapping">clang-extdef-mapping</primary>
454 </indexterm>
455 </listitem>
456 </varlistentry>
457
458 <varlistentry id="clang-format">
459 <term><command>clang-format</command></term>
460 <listitem>
461 <para>
462 is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf
463 code.
464 </para>
465 <indexterm zone="llvm clang-format">
466 <primary sortas="b-clang-format">clang-format</primary>
467 </indexterm>
468 </listitem>
469 </varlistentry>
470
471 <!--
472 <varlistentry id="clang-func-mapping">
473 <term><command>clang-func-mapping</command></term>
474 <listitem>
475 <para>
476 collects the name and location of all function definitions in the
477 source files.
478 </para>
479 <indexterm zone="llvm clang-func-mapping">
480 <primary sortas="b-clang-func-mapping">clang-func-mapping</primary>
481 </indexterm>
482 </listitem>
483 </varlistentry>
484-->
485 <varlistentry id="clang-offload-bundler">
486 <term><command>clang-offload-bundler</command></term>
487 <listitem>
488 <para>
489 is a tool to bundle/unbundle openMP offloaded files associated with
490 a common source file.
491 </para>
492 <indexterm zone="llvm clang-offload-bundler">
493 <primary sortas="b-clang-offload-bundler">clang-offload-bundler</primary>
494 </indexterm>
495 </listitem>
496 </varlistentry>
497
498 <varlistentry id="clang-offload-wrapper">
499 <term><command>clang-offload-bundler</command></term>
500 <listitem>
501 <para>
502 is a tool to create wrapper bitcode for offload target binaries.
503 </para>
504 <indexterm zone="llvm clang-offload-wrapper">
505 <primary sortas="b-clang-offload-wrapper">clang-offload-wrapper</primary>
506 </indexterm>
507 </listitem>
508 </varlistentry>
509
510 <varlistentry id="clang-refactor">
511 <term><command>clang-refactor</command></term>
512 <listitem>
513 <para>
514 is a Clang-based refactoring tool for C, C++ and Objective-C.
515 </para>
516 <indexterm zone="llvm clang-refactor">
517 <primary sortas="b-clang-refactor">clang-refactor</primary>
518 </indexterm>
519 </listitem>
520 </varlistentry>
521
522 <varlistentry id="clang-rename">
523 <term><command>clang-rename</command></term>
524 <listitem>
525 <para>
526 is a tool to rename symbols in C/C++ programs.
527 </para>
528 <indexterm zone="llvm clang-rename">
529 <primary sortas="b-clang-rename">clang-rename</primary>
530 </indexterm>
531 </listitem>
532 </varlistentry>
533
534 <varlistentry id="clang-scan-deps">
535 <term><command>clang-scan-deps</command></term>
536 <listitem>
537 <para>
538 is a tool to scan for dependencies in a source file.
539 </para>
540 <indexterm zone="llvm clang-scan-deps">
541 <primary sortas="b-clang-scan-deps">clang-scan-deps</primary>
542 </indexterm>
543 </listitem>
544 </varlistentry>
545
546 <varlistentry id="diagtool">
547 <term><command>diagtool</command></term>
548 <listitem>
549 <para>
550 is a combination of tools for dealing with diagnostics in clang.
551 </para>
552 <indexterm zone="llvm diagtool">
553 <primary sortas="b-diagtool">diagtool</primary>
554 </indexterm>
555 </listitem>
556 </varlistentry>
557
558 <varlistentry id="dsymutil">
559 <term><command>dsymutil</command></term>
560 <listitem>
561 <para>
562 is a tool used to manipulate archived DWARF debug symbol files,
563 compatible with the Darwin command <command>dsymutil</command>.
564 </para>
565 <indexterm zone="llvm dsymutil">
566 <primary sortas="b-dsymutil">dsymutil</primary>
567 </indexterm>
568 </listitem>
569 </varlistentry>
570
571 <varlistentry id="git-clang-format">
572 <term><command>git-clang-format</command></term>
573 <listitem>
574 <para>
575 runs clang-format on git generated patches (requires
576 <xref linkend="git"/>)
577 </para>
578 <indexterm zone="llvm git-clang-format">
579 <primary sortas="b-git-clang-format">git-clang-format</primary>
580 </indexterm>
581 </listitem>
582 </varlistentry>
583
584 <varlistentry id="hmaptool">
585 <term><command>hmaptool</command></term>
586 <listitem>
587 <para>
588 is a Python tool to dump and construct header maps.
589 </para>
590 <indexterm zone="llvm hmaptool">
591 <primary sortas="b-hmaptool">hmaptool</primary>
592 </indexterm>
593 </listitem>
594 </varlistentry>
595
596 <varlistentry id="llc">
597 <term><command>llc</command></term>
598 <listitem>
599 <para>
600 is the <application>LLVM</application> static compiler.
601 </para>
602 <indexterm zone="llvm llc">
603 <primary sortas="b-llc">llc</primary>
604 </indexterm>
605 </listitem>
606 </varlistentry>
607
608 <varlistentry id="lli">
609 <term><command>lli</command></term>
610 <listitem>
611 <para>
612 is used to directly execute programs from
613 <application>LLVM</application> bitcode.
614 </para>
615 <indexterm zone="llvm lli">
616 <primary sortas="b-lli">lli</primary>
617 </indexterm>
618 </listitem>
619 </varlistentry>
620
621 <varlistentry id="llvm-addr2line">
622 <term><command>llvm-addr2line</command></term>
623 <listitem>
624 <para>
625 is a tool used to convert addresses into file names and line
626 numbers.
627 </para>
628 <indexterm zone="llvm llvm-addr2line">
629 <primary sortas="b-llvm-addr2line">llvm-addr2line</primary>
630 </indexterm>
631 </listitem>
632 </varlistentry>
633
634 <varlistentry id="llvm-ar">
635 <term><command>llvm-ar</command></term>
636 <listitem>
637 <para>
638 is the <application>LLVM</application> archiver.
639 </para>
640 <indexterm zone="llvm llvm-ar">
641 <primary sortas="b-llvm-ar">llvm-ar</primary>
642 </indexterm>
643 </listitem>
644 </varlistentry>
645
646 <varlistentry id="llvm-as">
647 <term><command>llvm-as</command></term>
648 <listitem>
649 <para>
650 is the <application>LLVM</application> assembler.
651 </para>
652 <indexterm zone="llvm llvm-as">
653 <primary sortas="b-llvm-as">llvm-as</primary>
654 </indexterm>
655 </listitem>
656 </varlistentry>
657
658 <varlistentry id="llvm-bcanalyzer">
659 <term><command>llvm-bcanalyzer</command></term>
660 <listitem>
661 <para>
662 is the <application>LLVM</application> bitcode analyzer.
663 </para>
664 <indexterm zone="llvm llvm-bcanalyzer">
665 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
666 </indexterm>
667 </listitem>
668 </varlistentry>
669
670 <varlistentry id="llvm-cat">
671 <term><command>llvm-cat</command></term>
672 <listitem>
673 <para>
674 is a tool to concatenate llvm modules.
675 </para>
676 <indexterm zone="llvm llvm-cat">
677 <primary sortas="b-llvm-cat">llvm-cat</primary>
678 </indexterm>
679 </listitem>
680 </varlistentry>
681
682 <varlistentry id="llvm-cfi-verify">
683 <term><command>llvm-cfi-verify</command></term>
684 <listitem>
685 <para>
686 identifies whether Control Flow Integrity protects all indirect
687 control flow instructions in the provided object file, DSO, or
688 binary.
689 </para>
690 <indexterm zone="llvm llvm-cfi-verify">
691 <primary sortas="b-llvm-cfi-verify">llvm-cfi-verify</primary>
692 </indexterm>
693 </listitem>
694 </varlistentry>
695
696 <varlistentry id="llvm-config">
697 <term><command>llvm-config</command></term>
698 <listitem>
699 <para>
700 Prints <application>LLVM</application> compilation options.
701 </para>
702 <indexterm zone="llvm llvm-config">
703 <primary sortas="b-llvm-config">llvm-config</primary>
704 </indexterm>
705 </listitem>
706 </varlistentry>
707
708 <varlistentry id="llvm-cov">
709 <term><command>llvm-cov</command></term>
710 <listitem>
711 <para>
712 is used to emit coverage information.
713 </para>
714 <indexterm zone="llvm llvm-cov">
715 <primary sortas="b-llvm-cov">llvm-cov</primary>
716 </indexterm>
717 </listitem>
718 </varlistentry>
719
720 <varlistentry id="llvm-c-test">
721 <term><command>llvm-c-test</command></term>
722 <listitem>
723 <para>
724 is a bytecode disassembler.
725 </para>
726 <indexterm zone="llvm llvm-c-test">
727 <primary sortas="b-llvm-c-test">llvm-c-test</primary>
728 </indexterm>
729 </listitem>
730 </varlistentry>
731
732 <varlistentry id="llvm-cvtres">
733 <term><command>llvm-cvtres</command></term>
734 <listitem>
735 <para>
736 is a tool to convert Microsoft resource files to COFF.
737 </para>
738 <indexterm zone="llvm llvm-cvtres">
739 <primary sortas="b-llvm-cvtres">llvm-cvtres</primary>
740 </indexterm>
741 </listitem>
742 </varlistentry>
743
744 <varlistentry id="llvm-cxxdump">
745 <term><command>llvm-cxxdump</command></term>
746 <listitem>
747 <para>
748 is used as a C++ ABI Data Dumper.
749 </para>
750 <indexterm zone="llvm llvm-cxxdump">
751 <primary sortas="b-llvm-cxxdump">llvm-cxxdump</primary>
752 </indexterm>
753 </listitem>
754 </varlistentry>
755
756 <varlistentry id="llvm-cxxfilt">
757 <term><command>llvm-cxxfilt</command></term>
758 <listitem>
759 <para>
760 is used to demangle C++ symbols in llvm code.
761 </para>
762 <indexterm zone="llvm llvm-cxxfilt">
763 <primary sortas="b-llvm-cxxfilt">llvm-cxxfilt</primary>
764 </indexterm>
765 </listitem>
766 </varlistentry>
767
768 <varlistentry id="llvm-cxxmap">
769 <term><command>llvm-cxxmap</command></term>
770 <listitem>
771 <para>
772 is used to remap C++ mangled symbols.
773 </para>
774 <indexterm zone="llvm llvm-cxxmap">
775 <primary sortas="b-llvm-cxxmap">llvm-cxxmap</primary>
776 </indexterm>
777 </listitem>
778 </varlistentry>
779
780 <varlistentry id="llvm-diff">
781 <term><command>llvm-diff</command></term>
782 <listitem>
783 <para>
784 is the <application>LLVM</application> structural
785 '<command>diff</command>'.
786 </para>
787 <indexterm zone="llvm llvm-diff">
788 <primary sortas="b-llvm-diff">llvm-diff</primary>
789 </indexterm>
790 </listitem>
791 </varlistentry>
792
793 <varlistentry id="llvm-dis">
794 <term><command>llvm-dis</command></term>
795 <listitem>
796 <para>
797 is the <application>LLVM</application> disassembler.
798 </para>
799 <indexterm zone="llvm llvm-dis">
800 <primary sortas="b-llvm-dis">llvm-dis</primary>
801 </indexterm>
802 </listitem>
803 </varlistentry>
804
805 <varlistentry id="llvm-dwarfdump">
806 <term><command>llvm-dwarfdump</command></term>
807 <listitem>
808 <para>
809 prints the content of DWARF sections in object files.
810 </para>
811 <indexterm zone="llvm llvm-dwarfdump">
812 <primary sortas="b-llvm-dwarfdump">llvm-dwarfdump</primary>
813 </indexterm>
814 </listitem>
815 </varlistentry>
816
817 <varlistentry id="llvm-dwp">
818 <term><command>llvm-dwp</command></term>
819 <listitem>
820 <para>
821 merges split DWARF files.
822 </para>
823 <indexterm zone="llvm llvm-dwp">
824 <primary sortas="b-llvm-dwp">llvm-dwp</primary>
825 </indexterm>
826 </listitem>
827 </varlistentry>
828
829 <varlistentry id="llvm-elfabi">
830 <term><command>llvm-elfabi</command></term>
831 <listitem>
832 <para>
833 is used to read information about an ELF binary's ABI.
834 </para>
835 <indexterm zone="llvm llvm-elfabi">
836 <primary sortas="b-llvm-elfabi">llvm-elfabi</primary>
837 </indexterm>
838 </listitem>
839 </varlistentry>
840
841 <varlistentry id="llvm-exegesis">
842 <term><command>llvm-exegesis</command></term>
843 <listitem>
844 <para>
845 is a benchmarking tool that uses information available in LLVM to
846 measure host machine instruction characteristics like latency or
847 port decomposition.
848 </para>
849 <indexterm zone="llvm llvm-exegesis">
850 <primary sortas="b-llvm-exegesis">llvm-exegesis</primary>
851 </indexterm>
852 </listitem>
853 </varlistentry>
854
855 <varlistentry id="llvm-extract">
856 <term><command>llvm-extract</command></term>
857 <listitem>
858 <para>
859 is used to extract a function from an
860 <application>LLVM</application> module.
861 </para>
862 <indexterm zone="llvm llvm-extract">
863 <primary sortas="b-llvm-extract">llvm-extract</primary>
864 </indexterm>
865 </listitem>
866 </varlistentry>
867
868 <varlistentry id="llvm-ifs">
869 <term><command>llvm-ifs</command></term>
870 <listitem>
871 <para>
872 is used to merge interface stubs with object files.
873 </para>
874 <indexterm zone="llvm llvm-ifs">
875 <primary sortas="b-llvm-ifs">llvm-ifs</primary>
876 </indexterm>
877 </listitem>
878 </varlistentry>
879
880 <varlistentry id="llvm-install-name-tool">
881 <term><command>llvm-install-name-tool</command></term>
882 <listitem>
883 <para>
884 is used to rewrite load commands into MachO binary format.
885 </para>
886 <indexterm zone="llvm llvm-install-name-tool">
887 <primary sortas="b-llvm-install-name-tool">llvm-install-name-tool</primary>
888 </indexterm>
889 </listitem>
890 </varlistentry>
891
892 <varlistentry id="llvm-jitlink">
893 <term><command>llvm-jitlink</command></term>
894 <listitem>
895 <para>
896 is used to parse relocatable object files to make their contents
897 executable in a target process.
898 </para>
899 <indexterm zone="llvm llvm-jitlink">
900 <primary sortas="b-llvm-jitlink">llvm-jitlink</primary>
901 </indexterm>
902 </listitem>
903 </varlistentry>
904
905 <varlistentry id="llvm-link">
906 <term><command>llvm-link</command></term>
907 <listitem>
908 <para>
909 is the <application>LLVM</application> linker.
910 </para>
911 <indexterm zone="llvm llvm-link">
912 <primary sortas="b-llvm-link">llvm-link</primary>
913 </indexterm>
914 </listitem>
915 </varlistentry>
916
917 <varlistentry id="llvm-lipo">
918 <term><command>llvm-lipo</command></term>
919 <listitem>
920 <para>
921 is used to create universal binaries from MachO files.
922 </para>
923 <indexterm zone="llvm llvm-lipo">
924 <primary sortas="b-llvm-lipo">llvm-lipo</primary>
925 </indexterm>
926 </listitem>
927 </varlistentry>
928
929 <varlistentry id="llvm-lto">
930 <term><command>llvm-lto</command></term>
931 <listitem>
932 <para>
933 is the <application>LLVM</application> LTO (link time optimization)
934 linker.
935 </para>
936 <indexterm zone="llvm llvm-lto">
937 <primary sortas="b-llvm-lto">llvm-lto</primary>
938 </indexterm>
939 </listitem>
940 </varlistentry>
941
942 <varlistentry id="llvm-lto2">
943 <term><command>llvm-lto2</command></term>
944 <listitem>
945 <para>
946 is a test harness for the resolution based LTO interface.
947 </para>
948 <indexterm zone="llvm llvm-lto2">
949 <primary sortas="b-llvm-lto2">llvm-lto2</primary>
950 </indexterm>
951 </listitem>
952 </varlistentry>
953
954 <varlistentry id="llvm-mc">
955 <term><command>llvm-mc</command></term>
956 <listitem>
957 <para>
958 is a standalone machine code assembler/disassembler.
959 </para>
960 <indexterm zone="llvm llvm-mc">
961 <primary sortas="b-llvm-mc">llvm-mc</primary>
962 </indexterm>
963 </listitem>
964 </varlistentry>
965
966 <varlistentry id="llvm-mca">
967 <term><command>llvm-mca</command></term>
968 <listitem>
969 <para>
970 is a is a performance analysis tool to statically measure the
971 performance of machine code.
972 </para>
973 <indexterm zone="llvm llvm-mca">
974 <primary sortas="b-llvm-mca">llvm-mca</primary>
975 </indexterm>
976 </listitem>
977 </varlistentry>
978
979<!-- <varlistentry id="llvm-mcmarkup">
980 <term><command>llvm-mcmarkup</command></term>
981 <listitem>
982 <para>
983 is a parser for machine code markup.
984 </para>
985 <indexterm zone="llvm llvm-mcmarkup">
986 <primary sortas="b-llvm-mcmarkup">llvm-mcmarkup</primary>
987 </indexterm>
988 </listitem>
989 </varlistentry>-->
990
991 <varlistentry id="llvm-modextract">
992 <term><command>llvm-modextract</command></term>
993 <listitem>
994 <para>
995 is a tool to extract one module from multimodule bitcode files.
996 </para>
997 <indexterm zone="llvm llvm-modextract">
998 <primary sortas="b-llvm-modextract">llvm-modextract</primary>
999 </indexterm>
1000 </listitem>
1001 </varlistentry>
1002
1003 <varlistentry id="llvm-mt">
1004 <term><command>llvm-mt</command></term>
1005 <listitem>
1006 <para>
1007 is a tool to generate signed files and catalogs from a
1008 side-by-side assembly manifest (used for Microsoft SDK).
1009 </para>
1010 <indexterm zone="llvm llvm-mt">
1011 <primary sortas="b-llvm-mt">llvm-mt</primary>
1012 </indexterm>
1013 </listitem>
1014 </varlistentry>
1015
1016 <varlistentry id="llvm-nm">
1017 <term><command>llvm-nm</command></term>
1018 <listitem>
1019 <para>
1020 is used to list <application>LLVM</application> bitcode
1021 and object file's symbol table.
1022 </para>
1023 <indexterm zone="llvm llvm-nm">
1024 <primary sortas="b-llvm-nm">llvm-nm</primary>
1025 </indexterm>
1026 </listitem>
1027 </varlistentry>
1028
1029 <varlistentry id="llvm-objcopy">
1030 <term><command>llvm-objcopy</command></term>
1031 <listitem>
1032 <para>
1033 is LLVM's version of an objcopy tool.
1034 </para>
1035 <indexterm zone="llvm llvm-objcopy">
1036 <primary sortas="b-llvm-objcopy">llvm-objcopy</primary>
1037 </indexterm>
1038 </listitem>
1039 </varlistentry>
1040
1041 <varlistentry id="llvm-objdump">
1042 <term><command>llvm-objdump</command></term>
1043 <listitem>
1044 <para>
1045 is an <application>LLVM</application> object file dumper.
1046 </para>
1047 <indexterm zone="llvm llvm-objdump">
1048 <primary sortas="b-llvm-objdump">llvm-objdump</primary>
1049 </indexterm>
1050 </listitem>
1051 </varlistentry>
1052
1053 <varlistentry id="llvm-opt-report">
1054 <term><command>llvm-opt-report</command></term>
1055 <listitem>
1056 <para>
1057 is a tool to generate an optimization report from YAML optimization
1058 record files.
1059 </para>
1060 <indexterm zone="llvm llvm-opt-report">
1061 <primary sortas="b-llvm-opt-report">llvm-opt-report</primary>
1062 </indexterm>
1063 </listitem>
1064 </varlistentry>
1065
1066 <varlistentry id="llvm-pdbutil">
1067 <term><command>llvm-pdbutil</command></term>
1068 <listitem>
1069 <para>
1070 is a PDB (Program Database) dumper. PDB is a Microsoft format.
1071 </para>
1072 <indexterm zone="llvm llvm-pdbutil">
1073 <primary sortas="b-llvm-pdbutil">llvm-pdbutil</primary>
1074 </indexterm>
1075 </listitem>
1076 </varlistentry>
1077
1078 <varlistentry id="llvm-profdata">
1079 <term><command>llvm-profdata</command></term>
1080 <listitem>
1081 <para>
1082 is a small tool to manipulate and print profile data files.
1083 </para>
1084 <indexterm zone="llvm llvm-profdata">
1085 <primary sortas="b-llvm-profdata">llvm-profdata</primary>
1086 </indexterm>
1087 </listitem>
1088 </varlistentry>
1089
1090 <varlistentry id="llvm-ranlib">
1091 <term><command>llvm-ranlib</command></term>
1092 <listitem>
1093 <para>
1094 is used to generate an index for a <application>LLVM</application>
1095 archive.
1096 </para>
1097 <indexterm zone="llvm llvm-ranlib">
1098 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
1099 </indexterm>
1100 </listitem>
1101 </varlistentry>
1102
1103 <varlistentry id="llvm-rc">
1104 <term><command>llvm-rc</command></term>
1105 <listitem>
1106 <para>
1107 is a platform-independent tool to compile resource scripts
1108 into binary resource files.
1109 </para>
1110 <indexterm zone="llvm llvm-rc">
1111 <primary sortas="b-llvm-rc">llvm-rc</primary>
1112 </indexterm>
1113 </listitem>
1114 </varlistentry>
1115
1116 <varlistentry id="llvm-readobj">
1117 <term><command>llvm-readobj</command></term>
1118 <listitem>
1119 <para>
1120 displays low-level format-specific information about object files.
1121 </para>
1122 <indexterm zone="llvm llvm-readobj">
1123 <primary sortas="b-llvm-readobj">llvm-readobj</primary>
1124 </indexterm>
1125 </listitem>
1126 </varlistentry>
1127
1128 <varlistentry id="llvm-reduce">
1129 <term><command>llvm-reduce</command></term>
1130 <listitem>
1131 <para>
1132 is used to automatically reduce testcases
1133 when running a test suite.
1134 </para>
1135 <indexterm zone="llvm llvm-reduce">
1136 <primary sortas="b-llvm-reduce">llvm-reduce</primary>
1137 </indexterm>
1138 </listitem>
1139 </varlistentry>
1140
1141 <varlistentry id="llvm-rtdyld">
1142 <term><command>llvm-rtdyld</command></term>
1143 <listitem>
1144 <para>
1145 is the <application>LLVM</application> MC-JIT tool.
1146 </para>
1147 <indexterm zone="llvm llvm-rtdyld">
1148 <primary sortas="b-llvm-rtdyld">llvm-rtdyld</primary>
1149 </indexterm>
1150 </listitem>
1151 </varlistentry>
1152
1153 <varlistentry id="llvm-size">
1154 <term><command>llvm-size</command></term>
1155 <listitem>
1156 <para>
1157 is the <application>LLVM</application> object size dumper.
1158 </para>
1159 <indexterm zone="llvm llvm-size">
1160 <primary sortas="b-llvm-size">llvm-size</primary>
1161 </indexterm>
1162 </listitem>
1163 </varlistentry>
1164
1165 <varlistentry id="llvm-split">
1166 <term><command>llvm-split</command></term>
1167 <listitem>
1168 <para>
1169 is the <application>LLVM</application> module splitter.
1170 </para>
1171 <indexterm zone="llvm llvm-split">
1172 <primary sortas="b-llvm-split">llvm-split</primary>
1173 </indexterm>
1174 </listitem>
1175 </varlistentry>
1176
1177 <varlistentry id="llvm-stress">
1178 <term><command>llvm-stress</command></term>
1179 <listitem>
1180 <para>
1181 is used to generate random
1182 <filename class="extension">.ll</filename> files.
1183 </para>
1184 <indexterm zone="llvm llvm-stress">
1185 <primary sortas="b-llvm-stress">llvm-stress</primary>
1186 </indexterm>
1187 </listitem>
1188 </varlistentry>
1189
1190 <varlistentry id="llvm-strings">
1191 <term><command>llvm-strings</command></term>
1192 <listitem>
1193 <para>
1194 print strings found in a binary (object file, executable, or
1195 archive library).
1196 </para>
1197 <indexterm zone="llvm llvm-strings">
1198 <primary sortas="b-llvm-strings">llvm-strings</primary>
1199 </indexterm>
1200 </listitem>
1201 </varlistentry>
1202
1203 <varlistentry id="llvm-symbolizer">
1204 <term><command>llvm-symbolizer</command></term>
1205 <listitem>
1206 <para>
1207 converts adresses into source code locations.
1208 </para>
1209 <indexterm zone="llvm llvm-symbolizer">
1210 <primary sortas="b-llvm-symbolizer">llvm-symbolizer</primary>
1211 </indexterm>
1212 </listitem>
1213 </varlistentry>
1214
1215 <varlistentry id="llvm-tblgen">
1216 <term><command>llvm-tblgen</command></term>
1217 <listitem>
1218 <para>
1219 is the <application>LLVM</application> Target Description
1220 To C++ Code Generator.
1221 </para>
1222 <indexterm zone="llvm llvm-tblgen">
1223 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
1224 </indexterm>
1225 </listitem>
1226 </varlistentry>
1227
1228 <varlistentry id="llvm-undname">
1229 <term><command>llvm-undname</command></term>
1230 <listitem>
1231 <para>
1232 is a tool to demangle names.
1233 </para>
1234 <indexterm zone="llvm llvm-undname">
1235 <primary sortas="b-llvm-undname">llvm-undname</primary>
1236 </indexterm>
1237 </listitem>
1238 </varlistentry>
1239
1240 <varlistentry id="llvm-xray">
1241 <term><command>llvm-xray</command></term>
1242 <listitem>
1243 <para>
1244 is an implementation of Google's XRay function call tracing system.
1245 </para>
1246 <indexterm zone="llvm llvm-xray">
1247 <primary sortas="b-llvm-xray">llvm-xray</primary>
1248 </indexterm>
1249 </listitem>
1250 </varlistentry>
1251
1252 <varlistentry id="obj2yaml">
1253 <term><command>obj2yaml</command></term>
1254 <listitem>
1255 <para>
1256 takes an object file, and produces a YAML representation of the
1257 file.
1258 </para>
1259 <indexterm zone="llvm obj2yaml">
1260 <primary sortas="b-obj2yaml">obj2yaml</primary>
1261 </indexterm>
1262 </listitem>
1263 </varlistentry>
1264
1265 <varlistentry id="opt">
1266 <term><command>opt</command></term>
1267 <listitem>
1268 <para>
1269 is the <application>LLVM</application> optimizer.
1270 </para>
1271 <indexterm zone="llvm opt">
1272 <primary sortas="b-opt">opt</primary>
1273 </indexterm>
1274 </listitem>
1275 </varlistentry>
1276
1277 <varlistentry id="sancov">
1278 <term><command>sancov</command></term>
1279 <listitem>
1280 <para>
1281 is the sanitizer coverage processing tool.
1282 </para>
1283 <indexterm zone="llvm sancov">
1284 <primary sortas="b-sancov">sancov</primary>
1285 </indexterm>
1286 </listitem>
1287 </varlistentry>
1288
1289 <varlistentry id="sanstats">
1290 <term><command>sanstats</command></term>
1291 <listitem>
1292 <para>
1293 is the sanitizer statistics processing tool.
1294 </para>
1295 <indexterm zone="llvm sanstats">
1296 <primary sortas="b-sanstats">sanstats</primary>
1297 </indexterm>
1298 </listitem>
1299 </varlistentry>
1300
1301 <varlistentry id="scan-build">
1302 <term><command>scan-build</command></term>
1303 <listitem>
1304 <para>
1305 is a <application>Perl</application> script that invokes the
1306 <application>Clang</application> static analyzer.
1307 </para>
1308 <indexterm zone="llvm scan-build">
1309 <primary sortas="b-scan-build">scan-build</primary>
1310 </indexterm>
1311 </listitem>
1312 </varlistentry>
1313
1314 <varlistentry id="scan-view">
1315 <term><command>scan-view</command></term>
1316 <listitem>
1317 <para>
1318 is a viewer for <application>Clang</application> static analyzer
1319 results.
1320 </para>
1321 <indexterm zone="llvm scan-view">
1322 <primary sortas="b-scan-view">scan-view</primary>
1323 </indexterm>
1324 </listitem>
1325 </varlistentry>
1326
1327 <varlistentry id="verify-uselistorder">
1328 <term><command>verify-uselistorder</command></term>
1329 <listitem>
1330 <para>
1331 is the <application>LLVM</application> tool to verify use-list
1332 order.
1333 </para>
1334 <indexterm zone="llvm verify-uselistorder">
1335 <primary sortas="b-verify-uselistorder">verify-uselistorder</primary>
1336 </indexterm>
1337 </listitem>
1338 </varlistentry>
1339
1340 <varlistentry id="yaml2obj">
1341 <term><command>yaml2obj</command></term>
1342 <listitem>
1343 <para>
1344 takes a YAML representation of an object file and converts it
1345 to a binary file.
1346 </para>
1347 <indexterm zone="llvm yaml2obj">
1348 <primary sortas="b-yaml2obj">yaml2obj</primary>
1349 </indexterm>
1350 </listitem>
1351 </varlistentry>
1352<!--
1353 <varlistentry id="libllvm">
1354 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
1355 <listitem>
1356 <para>
1357 contains the <application>LLVM</application> API functions.
1358 </para>
1359 <indexterm zone="llvm libllvm">
1360 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
1361 </indexterm>
1362 </listitem>
1363 </varlistentry>
1364
1365 <varlistentry id="libprofile_rt">
1366 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
1367 <listitem>
1368 <para>
1369 is the C, C++ and Objective-C runtime library for
1370 <application>Clang</application>.
1371 </para>
1372 <indexterm zone="llvm libprofile_rt">
1373 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
1374 </indexterm>
1375 </listitem>
1376 </varlistentry>-->
1377
1378 </variablelist>
1379
1380 </sect2>
1381
1382</sect1>
Note: See TracBrowser for help on using the repository browser.