source: general/prog/llvm.xml@ 1fb54051

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 1fb54051 was 7e16699b, checked in by Bruce Dubbs <bdubbs@…>, 10 years ago

Update to llvm-3.4.1.
Archive farstream.
Correct alsa-lib doc directory.

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

  • Property mode set to 100644
File size: 18.5 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-download-http "http://llvm.org/releases/&llvm-version;/llvm-&llvm-version;.src.tar.gz">
8 <!ENTITY llvm-download-ftp " ">
9 <!ENTITY llvm-md5sum "b90697f4de35563ad6c35924defa8dd1">
10 <!ENTITY llvm-size "15 MB">
11 <!ENTITY llvm-buildsize "624 MB (1.2 GB with Clang)">
12 <!ENTITY llvm-time "17.1 SBU (33 SBU with Clang) and 0.4 for tests">
13
14 <!ENTITY clang-download-http "http://llvm.org/releases/&llvm-version;/cfe-&llvm-version;.src.tar.gz">
15 <!ENTITY clang-md5sum "c64fdc567383211c9ac212d6f7b69263">
16 <!ENTITY clang-size "11 MB">
17
18 <!ENTITY rt-version "3.4">
19 <!ENTITY compiler-rt-download-http "http://llvm.org/releases/&rt-version;/compiler-rt-&rt-version;.src.tar.gz">
20 <!ENTITY compiler-rt-md5sum "7938353e3a3bda85733a165e7ac4bb84">
21 <!ENTITY compiler-rt-size "1.8 MB">
22]>
23
24<sect1 id="llvm" xreflabel="LLVM-&llvm-version;">
25 <?dbhtml filename="llvm.html" ?>
26
27 <sect1info>
28 <othername>$LastChangedBy$</othername>
29 <date>$Date$</date>
30 </sect1info>
31
32 <title>LLVM-&llvm-version;</title>
33
34 <indexterm zone="llvm">
35 <primary sortas="a-LLVM">LLVM</primary>
36 </indexterm>
37
38 <sect2 role="package">
39 <title>Introduction to LLVM</title>
40
41 <para>
42 The <application>LLVM</application> package contains a collection of modular and
43 reusable compiler and toolchain technologies. The Low Level Virtual Machine
44 (LLVM) Core libraries provide a modern source and target-independent optimizer,
45 along with code generation support for many popular CPUs (as well as some less
46 common ones!). These libraries are built around a well specified code
47 representation known as the LLVM intermediate representation ("LLVM IR").
48 </para>
49
50 <para>
51 The optional <application>Clang</application> and <application>Compiler RT</application>
52 packages provide a new C, C++, Objective C and Objective C++ front-ends and runtime
53 libraries for the <application>LLVM</application>.
54 </para>
55
56 &lfs75_checked;
57
58 <bridgehead renderas="sect3">Package Information</bridgehead>
59 <itemizedlist spacing="compact">
60 <listitem>
61 <para>
62 Download (HTTP): <ulink url="&llvm-download-http;"/>
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Download (FTP): <ulink url="&llvm-download-ftp;"/>
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Download MD5 sum: &llvm-md5sum;
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 Download size: &llvm-size;
78 </para>
79 </listitem>
80 <listitem>
81 <para>
82 Estimated disk space required: &llvm-buildsize;
83 </para>
84 </listitem>
85 <listitem>
86 <para>
87 Estimated build time: &llvm-time;
88 </para>
89 </listitem>
90 </itemizedlist>
91
92 <bridgehead renderas="sect3">Optional Downloads</bridgehead>
93
94 <bridgehead renderas="sect4">Clang</bridgehead>
95 <itemizedlist spacing="compact">
96 <listitem>
97 <para>
98 Download: <ulink url="&clang-download-http;"/>
99 </para>
100 </listitem>
101 <listitem>
102 <para>
103 Download MD5 sum: &clang-md5sum;
104 </para>
105 </listitem>
106 <listitem>
107 <para>
108 Download size: &clang-size;
109 </para>
110 </listitem>
111 </itemizedlist>
112
113 <bridgehead renderas="sect4">Compiler RT</bridgehead>
114 <itemizedlist spacing="compact">
115 <listitem>
116 <para>
117 Download: <ulink url="&compiler-rt-download-http;"/>
118 </para>
119 </listitem>
120 <listitem>
121 <para>
122 Download MD5 sum: &compiler-rt-md5sum;
123 </para>
124 </listitem>
125 <listitem>
126 <para>
127 Download size: &compiler-rt-size;
128 </para>
129 </listitem>
130 </itemizedlist>
131
132 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
133
134 <bridgehead renderas="sect4">Recommended</bridgehead>
135 <para role="recommended">
136 <xref linkend="libffi"/> and
137 <xref linkend="python2"/>
138 </para>
139
140 <bridgehead renderas="sect4">Optional</bridgehead>
141 <para role="optional">
142 <xref linkend="doxygen"/>,
143 <xref linkend="graphviz"/>,
144 <xref linkend="libxml2"/>,
145 <xref linkend="texlive"/>,
146 <xref linkend="zip"/>,
147 <ulink url="http://www.ocaml.org/">OCaml</ulink>,
148 <ulink url="http://pypi.python.org/pypi/Sphinx">Sphinx</ulink> and
149 <xref linkend="valgrind"/>
150 </para>
151
152 <para condition="html" role="usernotes">User Notes:
153 <ulink url="&blfs-wiki;/llvm"/>
154 </para>
155 </sect2>
156
157 <sect2 role="installation">
158 <title>Installation of LLVM</title>
159
160 <para>
161 If you have downloaded the optional packages, install them into
162 the source tree by running the following commands:
163 </para>
164
165<screen><userinput>tar -xf ../cfe-&llvm-version;.src.tar.gz -C tools &amp;&amp;
166tar -xf ../compiler-rt-&rt-version;.src.tar.gz -C projects &amp;&amp;
167
168mv tools/cfe-&llvm-version;.src tools/clang &amp;&amp;
169mv projects/compiler-rt-&rt-version; projects/compiler-rt</userinput></screen>
170
171 <para>
172 Install <application>LLVM</application> by running the following
173 commands:
174 </para>
175
176<screen><userinput>sed -e 's:/docs/llvm:/share/doc/llvm-&llvm-version;:' \
177 -i Makefile.config.in &amp;&amp;
178
179CC=gcc CXX=g++ \
180./configure --prefix=/usr \
181 --sysconfdir=/etc \
182 --enable-libffi \
183 --enable-optimized \
184 --enable-shared \
185 --disable-assertions &amp;&amp;
186make</userinput></screen>
187
188 <para>
189 If you have installed <application>Sphinx</application> and wish
190 to generate manual pages, issue the following command:
191 </para>
192
193<screen><userinput>make -C docs -f Makefile.sphinx man</userinput></screen>
194
195 <para>
196 To test the results, issue: <command>make check</command>.
197 </para>
198
199 <para>
200 Now, as the <systemitem class="username">root</systemitem> user:
201 </para>
202
203<screen role="root"><userinput>make install &amp;&amp;
204
205for file in /usr/lib/lib{clang,LLVM,LTO}*.a
206do
207 test -f $file &amp;&amp; chmod -v 644 $file
208done</userinput></screen>
209
210 <para>
211 If you had <xref linkend="python2"/> installed and you have
212 built <application>Clang</application>, install the
213 <application>Clang Analyzer</application> by running the
214 following command as the
215 <systemitem class="username">root</systemitem> user:
216 </para>
217
218<screen role="root"><userinput>install -v -dm755 /usr/lib/clang-analyzer &amp;&amp;
219for prog in scan-build scan-view
220do
221 cp -rfv tools/clang/tools/$prog /usr/lib/clang-analyzer/
222 ln -sfv ../lib/clang-analyzer/$prog/$prog /usr/bin/
223done &amp;&amp;
224ln -sfv /usr/bin/clang /usr/lib/clang-analyzer/scan-build/ &amp;&amp;
225mv -v /usr/lib/clang-analyzer/scan-build/scan-build.1 /usr/share/man/man1/</userinput></screen>
226
227 <para>
228 If you have built manual pages, install them by running the
229 following command as the
230 <systemitem class="username">root</systemitem> user:
231 </para>
232
233<screen role="root"><userinput>install -v -m644 docs/_build/man/* /usr/share/man/man1/</userinput></screen>
234
235 </sect2>
236
237 <sect2 role="commands">
238 <title>Command Explanations</title>
239
240 <para>
241 <command>sed -e ...</command>: This sed fixes location of the
242 installed documentation.
243 </para>
244
245 <para>
246 <parameter>--enable-libffi</parameter>: This switch enables
247 <application>LLVM</application> to use
248 <application>libffi</application>. Remove if you did not
249 install <application>libffi</application>.
250 </para>
251
252 <para>
253 <parameter>--enable-optimized</parameter>: This switch enables
254 compiler optimizations in order to speed up the code and reduce
255 its size.
256 </para>
257
258 <para>
259 <parameter>--enable-shared</parameter>: This switch enables
260 building of the <application>LLVM</application> shared
261 library which contains all of static libraries linked into
262 single library.
263 </para>
264
265 <para>
266 <parameter>--disable-assertions</parameter>: Disable some compile checks,
267 not necessary on a production system.
268 </para>
269
270 </sect2>
271
272 <sect2 role="content">
273 <title>Contents</title>
274
275 <segmentedlist>
276 <segtitle>Installed Programs</segtitle>
277 <segtitle>Installed Libraries</segtitle>
278 <segtitle>Installed Directories</segtitle>
279
280 <seglistitem>
281 <seg>
282 bugpoint, c-index-test, clang, clang++ (symlink), clang-check,
283 clang-format, clang-tblgen, llc, lli, lli-child-target, llvm-ar,
284 llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov, llvm-diff, llvm-dis,
285 llvm-dwarfdump, llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup,
286 llvm-nm, llvm-objdump,<!-- llvm-prof,--> llvm-ranlib (symlink),
287 llvm-readobj, llvm-rtdyld, llvm-size, llvm-stress, llvm-symbolizer,
288 llvm-tblgen, macho-dump, opt, scan-build (symlink) and scan-view
289 (symlink)
290 </seg>
291 <seg>
292 BugpointPasses.so, libclang.so, libLLVM-&llvm-version;.so,
293 libLTO.so,<!-- libprofile_rt.so,--> LLVMHello.so and numerous
294 static libraries in /usr/lib
295 </seg>
296 <seg>
297 /usr/include/clang,
298 /usr/include/clang-c,
299 /usr/include/llvm,
300 /usr/include/llvm-c,
301 /usr/lib/clang,
302 /usr/lib/clang-analyzer,
303 /usr/share/doc/html/clang, and
304 /usr/share/doc/llvm-&llvm-version;
305 </seg>
306 </seglistitem>
307 </segmentedlist>
308
309 <variablelist>
310 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
311 <?dbfo list-presentation="list"?>
312 <?dbhtml list-presentation="table"?>
313
314 <varlistentry id="bugpoint">
315 <term><command>bugpoint</command></term>
316 <listitem>
317 <para>
318 is the automatic test case reduction tool.
319 </para>
320 <indexterm zone="llvm bugpoint">
321 <primary sortas="b-bugpoint">bugpoint</primary>
322 </indexterm>
323 </listitem>
324 </varlistentry>
325
326 <varlistentry id="clang">
327 <term><command>clang</command></term>
328 <listitem>
329 <para>
330 is the <application>Clang</application> C, C++,
331 and Objective-C compiler.
332 </para>
333 <indexterm zone="llvm clang">
334 <primary sortas="b-clang">clang</primary>
335 </indexterm>
336 </listitem>
337 </varlistentry>
338
339 <varlistentry id="llc">
340 <term><command>llc</command></term>
341 <listitem>
342 <para>
343 is the <application>LLVM</application> static compiler.
344 </para>
345 <indexterm zone="llvm llc">
346 <primary sortas="b-llc">llc</primary>
347 </indexterm>
348 </listitem>
349 </varlistentry>
350
351 <varlistentry id="lli">
352 <term><command>lli</command></term>
353 <listitem>
354 <para>
355 is used to directly execute programs from
356 <application>LLVM</application> bitcode.
357 </para>
358 <indexterm zone="llvm lli">
359 <primary sortas="b-lli">lli</primary>
360 </indexterm>
361 </listitem>
362 </varlistentry>
363
364 <varlistentry id="llvm-ar">
365 <term><command>llvm-ar</command></term>
366 <listitem>
367 <para>
368 is the <application>LLVM</application> archiver.
369 </para>
370 <indexterm zone="llvm llvm-ar">
371 <primary sortas="b-llvm-ar">llvm-ar</primary>
372 </indexterm>
373 </listitem>
374 </varlistentry>
375
376 <varlistentry id="llvm-as">
377 <term><command>llvm-as</command></term>
378 <listitem>
379 <para>
380 is the <application>LLVM</application> assembler.
381 </para>
382 <indexterm zone="llvm llvm-as">
383 <primary sortas="b-llvm-as">llvm-as</primary>
384 </indexterm>
385 </listitem>
386 </varlistentry>
387
388 <varlistentry id="llvm-bcanalyzer">
389 <term><command>llvm-bcanalyzer</command></term>
390 <listitem>
391 <para>
392 is the <application>LLVM</application> bitcode analyzer.
393 </para>
394 <indexterm zone="llvm llvm-bcanalyzer">
395 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
396 </indexterm>
397 </listitem>
398 </varlistentry>
399
400 <varlistentry id="llvm-config">
401 <term><command>llvm-config</command></term>
402 <listitem>
403 <para>
404 Prints <application>LLVM</application> compilation options.
405 </para>
406 <indexterm zone="llvm llvm-config">
407 <primary sortas="b-llvm-config">llvm-config</primary>
408 </indexterm>
409 </listitem>
410 </varlistentry>
411
412 <varlistentry id="llvm-cov">
413 <term><command>llvm-cov</command></term>
414 <listitem>
415 <para>
416 is used to emit coverage information.
417 </para>
418 <indexterm zone="llvm llvm-cov">
419 <primary sortas="b-llvm-cov">llvm-cov</primary>
420 </indexterm>
421 </listitem>
422 </varlistentry>
423
424 <varlistentry id="llvm-diff">
425 <term><command>llvm-diff</command></term>
426 <listitem>
427 <para>
428 is the <application>LLVM</application> structural
429 '<command>diff</command>'.
430 </para>
431 <indexterm zone="llvm llvm-diff">
432 <primary sortas="b-llvm-diff">llvm-diff</primary>
433 </indexterm>
434 </listitem>
435 </varlistentry>
436
437 <varlistentry id="llvm-dis">
438 <term><command>llvm-dis</command></term>
439 <listitem>
440 <para>
441 is the <application>LLVM</application> disassembler.
442 </para>
443 <indexterm zone="llvm llvm-dis">
444 <primary sortas="b-llvm-dis">llvm-dis</primary>
445 </indexterm>
446 </listitem>
447 </varlistentry>
448
449 <varlistentry id="llvm-extract">
450 <term><command>llvm-extract</command></term>
451 <listitem>
452 <para>
453 is used to extract a function from an
454 <application>LLVM</application> module.
455 </para>
456 <indexterm zone="llvm llvm-extract">
457 <primary sortas="b-llvm-extract">llvm-extract</primary>
458 </indexterm>
459 </listitem>
460 </varlistentry>
461
462 <varlistentry id="llvm-link">
463 <term><command>llvm-link</command></term>
464 <listitem>
465 <para>
466 is the <application>LLVM</application> linker.
467 </para>
468 <indexterm zone="llvm llvm-link">
469 <primary sortas="b-llvm-link">llvm-link</primary>
470 </indexterm>
471 </listitem>
472 </varlistentry>
473
474 <varlistentry id="llvm-nm">
475 <term><command>llvm-nm</command></term>
476 <listitem>
477 <para>
478 is used to list <application>LLVM</application> bitcode
479 and object file's symbol table.
480 </para>
481 <indexterm zone="llvm llvm-nm">
482 <primary sortas="b-llvm-nm">llvm-nm</primary>
483 </indexterm>
484 </listitem>
485 </varlistentry>
486<!--
487 <varlistentry id="llvm-prof">
488 <term><command>llvm-prof</command></term>
489 <listitem>
490 <para>
491 is used to print execution profile of
492 <application>LLVM</application> program.
493 </para>
494 <indexterm zone="llvm llvm-prof">
495 <primary sortas="b-llvm-prof">llvm-prof</primary>
496 </indexterm>
497 </listitem>
498 </varlistentry>-->
499
500 <varlistentry id="llvm-ranlib">
501 <term><command>llvm-ranlib</command></term>
502 <listitem>
503 <para>
504 is used to generate index for <application>LLVM</application>
505 archive.
506 </para>
507 <indexterm zone="llvm llvm-ranlib">
508 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
509 </indexterm>
510 </listitem>
511 </varlistentry>
512
513 <varlistentry id="llvm-stress">
514 <term><command>llvm-stress</command></term>
515 <listitem>
516 <para>
517 is used to generate random
518 <filename class="extension">.ll</filename> files.
519 </para>
520 <indexterm zone="llvm llvm-stress">
521 <primary sortas="b-llvm-stress">llvm-stress</primary>
522 </indexterm>
523 </listitem>
524 </varlistentry>
525
526 <varlistentry id="llvm-tblgen">
527 <term><command>llvm-tblgen</command></term>
528 <listitem>
529 <para>
530 is the <application>LLVM</application> Target Description
531 To C++ Code Generator.
532 </para>
533 <indexterm zone="llvm llvm-tblgen">
534 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
535 </indexterm>
536 </listitem>
537 </varlistentry>
538
539 <varlistentry id="opt">
540 <term><command>opt</command></term>
541 <listitem>
542 <para>
543 is the <application>LLVM</application> optimizer.
544 </para>
545 <indexterm zone="llvm opt">
546 <primary sortas="b-opt">opt</primary>
547 </indexterm>
548 </listitem>
549 </varlistentry>
550
551 <varlistentry id="scan-build">
552 <term><command>scan-build</command></term>
553 <listitem>
554 <para>
555 is a <application>Perl</application> script that invokes the
556 <application>Clang</application> static analyzer.
557 </para>
558 <indexterm zone="llvm scan-build">
559 <primary sortas="b-scan-build">scan-build</primary>
560 </indexterm>
561 </listitem>
562 </varlistentry>
563
564 <varlistentry id="libllvm">
565 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
566 <listitem>
567 <para>
568 contains the <application>LLVM</application> API functions.
569 </para>
570 <indexterm zone="llvm libllvm">
571 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
572 </indexterm>
573 </listitem>
574 </varlistentry>
575<!--
576 <varlistentry id="libprofile_rt">
577 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
578 <listitem>
579 <para>
580 is the C, C++ and Objective-C runtime library for
581 <application>Clang</application>.
582 </para>
583 <indexterm zone="llvm libprofile_rt">
584 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
585 </indexterm>
586 </listitem>
587 </varlistentry>-->
588
589 </variablelist>
590
591 </sect2>
592
593</sect1>
Note: See TracBrowser for help on using the repository browser.