source: general/prog/llvm.xml@ 6e065a4

7.6-blfs 7.6-systemd kde5-14686 systemd-13485
Last change on this file since 6e065a4 was 6e065a4, checked in by Christopher Gregory <cjg@…>, 10 years ago

Removed gcc workaround from llvm page to match trunk.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/branches/systemd@14290 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 18.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-download-http "http://llvm.org/releases/&llvm-version;/llvm-&llvm-version;.src.tar.gz">
8 <!ENTITY llvm-download-ftp " ">
9 <!ENTITY llvm-md5sum "d6987305a1a0e58e128c1374cd3b8fef">
10 <!ENTITY llvm-size "12 MB">
11 <!ENTITY llvm-buildsize "707 MB (1.3 GB with Clang) (11.4 GB with Clang and documentation)">
12 <!ENTITY llvm-time "32 SBU (57.1 SBU with Clang and tests) (96 SBU with Clang and all documentation)">
13
14 <!ENTITY clang-download-http "http://llvm.org/releases/&llvm-version;/cfe-&llvm-version;.src.tar.xz">
15 <!ENTITY clang-md5sum "27718dd13c7df83e15f997116bbb4aef">
16 <!ENTITY clang-size "7.9 MB">
17
18 <!ENTITY rt-version "&llvm-version;">
19 <!ENTITY compiler-rt-download-http "http://llvm.org/releases/&rt-version;/compiler-rt-&rt-version;.src.tar.xz">
20 <!ENTITY compiler-rt-md5sum "02624d2a9144278c3808c00dbbab56c8">
21 <!ENTITY compiler-rt-size "1.1 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 &lfs76_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,
304 /usr/share/doc/llvm-&llvm-version;, and
305 /usr/share/doc/ps
306 </seg>
307 </seglistitem>
308 </segmentedlist>
309
310 <variablelist>
311 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
312 <?dbfo list-presentation="list"?>
313 <?dbhtml list-presentation="table"?>
314
315 <varlistentry id="bugpoint">
316 <term><command>bugpoint</command></term>
317 <listitem>
318 <para>
319 is the automatic test case reduction tool.
320 </para>
321 <indexterm zone="llvm bugpoint">
322 <primary sortas="b-bugpoint">bugpoint</primary>
323 </indexterm>
324 </listitem>
325 </varlistentry>
326
327 <varlistentry id="clang">
328 <term><command>clang</command></term>
329 <listitem>
330 <para>
331 is the <application>Clang</application> C, C++,
332 and Objective-C compiler.
333 </para>
334 <indexterm zone="llvm clang">
335 <primary sortas="b-clang">clang</primary>
336 </indexterm>
337 </listitem>
338 </varlistentry>
339
340 <varlistentry id="llc">
341 <term><command>llc</command></term>
342 <listitem>
343 <para>
344 is the <application>LLVM</application> static compiler.
345 </para>
346 <indexterm zone="llvm llc">
347 <primary sortas="b-llc">llc</primary>
348 </indexterm>
349 </listitem>
350 </varlistentry>
351
352 <varlistentry id="lli">
353 <term><command>lli</command></term>
354 <listitem>
355 <para>
356 is used to directly execute programs from
357 <application>LLVM</application> bitcode.
358 </para>
359 <indexterm zone="llvm lli">
360 <primary sortas="b-lli">lli</primary>
361 </indexterm>
362 </listitem>
363 </varlistentry>
364
365 <varlistentry id="llvm-ar">
366 <term><command>llvm-ar</command></term>
367 <listitem>
368 <para>
369 is the <application>LLVM</application> archiver.
370 </para>
371 <indexterm zone="llvm llvm-ar">
372 <primary sortas="b-llvm-ar">llvm-ar</primary>
373 </indexterm>
374 </listitem>
375 </varlistentry>
376
377 <varlistentry id="llvm-as">
378 <term><command>llvm-as</command></term>
379 <listitem>
380 <para>
381 is the <application>LLVM</application> assembler.
382 </para>
383 <indexterm zone="llvm llvm-as">
384 <primary sortas="b-llvm-as">llvm-as</primary>
385 </indexterm>
386 </listitem>
387 </varlistentry>
388
389 <varlistentry id="llvm-bcanalyzer">
390 <term><command>llvm-bcanalyzer</command></term>
391 <listitem>
392 <para>
393 is the <application>LLVM</application> bitcode analyzer.
394 </para>
395 <indexterm zone="llvm llvm-bcanalyzer">
396 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
397 </indexterm>
398 </listitem>
399 </varlistentry>
400
401 <varlistentry id="llvm-config">
402 <term><command>llvm-config</command></term>
403 <listitem>
404 <para>
405 Prints <application>LLVM</application> compilation options.
406 </para>
407 <indexterm zone="llvm llvm-config">
408 <primary sortas="b-llvm-config">llvm-config</primary>
409 </indexterm>
410 </listitem>
411 </varlistentry>
412
413 <varlistentry id="llvm-cov">
414 <term><command>llvm-cov</command></term>
415 <listitem>
416 <para>
417 is used to emit coverage information.
418 </para>
419 <indexterm zone="llvm llvm-cov">
420 <primary sortas="b-llvm-cov">llvm-cov</primary>
421 </indexterm>
422 </listitem>
423 </varlistentry>
424
425 <varlistentry id="llvm-diff">
426 <term><command>llvm-diff</command></term>
427 <listitem>
428 <para>
429 is the <application>LLVM</application> structural
430 '<command>diff</command>'.
431 </para>
432 <indexterm zone="llvm llvm-diff">
433 <primary sortas="b-llvm-diff">llvm-diff</primary>
434 </indexterm>
435 </listitem>
436 </varlistentry>
437
438 <varlistentry id="llvm-dis">
439 <term><command>llvm-dis</command></term>
440 <listitem>
441 <para>
442 is the <application>LLVM</application> disassembler.
443 </para>
444 <indexterm zone="llvm llvm-dis">
445 <primary sortas="b-llvm-dis">llvm-dis</primary>
446 </indexterm>
447 </listitem>
448 </varlistentry>
449
450 <varlistentry id="llvm-extract">
451 <term><command>llvm-extract</command></term>
452 <listitem>
453 <para>
454 is used to extract a function from an
455 <application>LLVM</application> module.
456 </para>
457 <indexterm zone="llvm llvm-extract">
458 <primary sortas="b-llvm-extract">llvm-extract</primary>
459 </indexterm>
460 </listitem>
461 </varlistentry>
462
463 <varlistentry id="llvm-link">
464 <term><command>llvm-link</command></term>
465 <listitem>
466 <para>
467 is the <application>LLVM</application> linker.
468 </para>
469 <indexterm zone="llvm llvm-link">
470 <primary sortas="b-llvm-link">llvm-link</primary>
471 </indexterm>
472 </listitem>
473 </varlistentry>
474
475 <varlistentry id="llvm-nm">
476 <term><command>llvm-nm</command></term>
477 <listitem>
478 <para>
479 is used to list <application>LLVM</application> bitcode
480 and object file's symbol table.
481 </para>
482 <indexterm zone="llvm llvm-nm">
483 <primary sortas="b-llvm-nm">llvm-nm</primary>
484 </indexterm>
485 </listitem>
486 </varlistentry>
487<!--
488 <varlistentry id="llvm-prof">
489 <term><command>llvm-prof</command></term>
490 <listitem>
491 <para>
492 is used to print execution profile of
493 <application>LLVM</application> program.
494 </para>
495 <indexterm zone="llvm llvm-prof">
496 <primary sortas="b-llvm-prof">llvm-prof</primary>
497 </indexterm>
498 </listitem>
499 </varlistentry>-->
500
501 <varlistentry id="llvm-ranlib">
502 <term><command>llvm-ranlib</command></term>
503 <listitem>
504 <para>
505 is used to generate index for <application>LLVM</application>
506 archive.
507 </para>
508 <indexterm zone="llvm llvm-ranlib">
509 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
510 </indexterm>
511 </listitem>
512 </varlistentry>
513
514 <varlistentry id="llvm-stress">
515 <term><command>llvm-stress</command></term>
516 <listitem>
517 <para>
518 is used to generate random
519 <filename class="extension">.ll</filename> files.
520 </para>
521 <indexterm zone="llvm llvm-stress">
522 <primary sortas="b-llvm-stress">llvm-stress</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526
527 <varlistentry id="llvm-tblgen">
528 <term><command>llvm-tblgen</command></term>
529 <listitem>
530 <para>
531 is the <application>LLVM</application> Target Description
532 To C++ Code Generator.
533 </para>
534 <indexterm zone="llvm llvm-tblgen">
535 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
536 </indexterm>
537 </listitem>
538 </varlistentry>
539
540 <varlistentry id="opt">
541 <term><command>opt</command></term>
542 <listitem>
543 <para>
544 is the <application>LLVM</application> optimizer.
545 </para>
546 <indexterm zone="llvm opt">
547 <primary sortas="b-opt">opt</primary>
548 </indexterm>
549 </listitem>
550 </varlistentry>
551
552 <varlistentry id="scan-build">
553 <term><command>scan-build</command></term>
554 <listitem>
555 <para>
556 is a <application>Perl</application> script that invokes the
557 <application>Clang</application> static analyzer.
558 </para>
559 <indexterm zone="llvm scan-build">
560 <primary sortas="b-scan-build">scan-build</primary>
561 </indexterm>
562 </listitem>
563 </varlistentry>
564
565 <varlistentry id="libllvm">
566 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
567 <listitem>
568 <para>
569 contains the <application>LLVM</application> API functions.
570 </para>
571 <indexterm zone="llvm libllvm">
572 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
573 </indexterm>
574 </listitem>
575 </varlistentry>
576<!--
577 <varlistentry id="libprofile_rt">
578 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
579 <listitem>
580 <para>
581 is the C, C++ and Objective-C runtime library for
582 <application>Clang</application>.
583 </para>
584 <indexterm zone="llvm libprofile_rt">
585 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
586 </indexterm>
587 </listitem>
588 </varlistentry>-->
589
590 </variablelist>
591
592 </sect2>
593
594</sect1>
Note: See TracBrowser for help on using the repository browser.