source: general/prog/llvm.xml@ e4026c0

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.5 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 e4026c0 was e4026c0, checked in by Fernando de Oliveira <fernando@…>, 10 years ago

LLVM 3.4: remove switches that are default.

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

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