source: general/prog/llvm.xml@ 06939c43

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

Updated llvm to latest version. Changed stats.

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

  • Property mode set to 100644
File size: 18.8 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 sed -i '/# Support plugins./ iLLVMLibsOptions := ../../lib/IR/Release*/Pass.o' \
179 tools/bugpoint/Makefile tools/opt/Makefile &amp;&amp;
180
181CC=gcc CXX=g++ \
182./configure --prefix=/usr \
183 --sysconfdir=/etc \
184 --enable-libffi \
185 --enable-optimized \
186 --enable-shared \
187 --disable-assertions &amp;&amp;
188make</userinput></screen>
189
190 <para>
191 If you have installed <application>Sphinx</application> and wish
192 to generate manual pages, issue the following command:
193 </para>
194
195<screen><userinput>make -C docs -f Makefile.sphinx man</userinput></screen>
196
197 <para>
198 To test the results, issue: <command>make check</command>.
199 </para>
200
201 <para>
202 Now, as the <systemitem class="username">root</systemitem> user:
203 </para>
204
205<screen role="root"><userinput>make install &amp;&amp;
206
207for file in /usr/lib/lib{clang,LLVM,LTO}*.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>--disable-assertions</parameter>: Disable some compile checks,
269 not necessary on a production system.
270 </para>
271
272 </sect2>
273
274 <sect2 role="content">
275 <title>Contents</title>
276
277 <segmentedlist>
278 <segtitle>Installed Programs</segtitle>
279 <segtitle>Installed Libraries</segtitle>
280 <segtitle>Installed Directories</segtitle>
281
282 <seglistitem>
283 <seg>
284 bugpoint, c-index-test, clang, clang++ (symlink), clang-check,
285 clang-format, clang-tblgen, llc, lli, lli-child-target, llvm-ar,
286 llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov, llvm-diff, llvm-dis,
287 llvm-dwarfdump, llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup,
288 llvm-nm, llvm-objdump,<!-- llvm-prof,--> llvm-ranlib (symlink),
289 llvm-readobj, llvm-rtdyld, llvm-size, llvm-stress, llvm-symbolizer,
290 llvm-tblgen, macho-dump, opt, scan-build (symlink) and scan-view
291 (symlink)
292 </seg>
293 <seg>
294 BugpointPasses.so, libclang.so, libLLVM-&llvm-version;.so,
295 libLTO.so,<!-- libprofile_rt.so,--> LLVMHello.so and numerous
296 static libraries in /usr/lib
297 </seg>
298 <seg>
299 /usr/include/clang,
300 /usr/include/clang-c,
301 /usr/include/llvm,
302 /usr/include/llvm-c,
303 /usr/lib/clang,
304 /usr/lib/clang-analyzer,
305 /usr/share/doc/html/clang,
306 /usr/share/doc/llvm-&llvm-version;, and
307 /usr/share/doc/ps
308 </seg>
309 </seglistitem>
310 </segmentedlist>
311
312 <variablelist>
313 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
314 <?dbfo list-presentation="list"?>
315 <?dbhtml list-presentation="table"?>
316
317 <varlistentry id="bugpoint">
318 <term><command>bugpoint</command></term>
319 <listitem>
320 <para>
321 is the automatic test case reduction tool.
322 </para>
323 <indexterm zone="llvm bugpoint">
324 <primary sortas="b-bugpoint">bugpoint</primary>
325 </indexterm>
326 </listitem>
327 </varlistentry>
328
329 <varlistentry id="clang">
330 <term><command>clang</command></term>
331 <listitem>
332 <para>
333 is the <application>Clang</application> C, C++,
334 and Objective-C compiler.
335 </para>
336 <indexterm zone="llvm clang">
337 <primary sortas="b-clang">clang</primary>
338 </indexterm>
339 </listitem>
340 </varlistentry>
341
342 <varlistentry id="llc">
343 <term><command>llc</command></term>
344 <listitem>
345 <para>
346 is the <application>LLVM</application> static compiler.
347 </para>
348 <indexterm zone="llvm llc">
349 <primary sortas="b-llc">llc</primary>
350 </indexterm>
351 </listitem>
352 </varlistentry>
353
354 <varlistentry id="lli">
355 <term><command>lli</command></term>
356 <listitem>
357 <para>
358 is used to directly execute programs from
359 <application>LLVM</application> bitcode.
360 </para>
361 <indexterm zone="llvm lli">
362 <primary sortas="b-lli">lli</primary>
363 </indexterm>
364 </listitem>
365 </varlistentry>
366
367 <varlistentry id="llvm-ar">
368 <term><command>llvm-ar</command></term>
369 <listitem>
370 <para>
371 is the <application>LLVM</application> archiver.
372 </para>
373 <indexterm zone="llvm llvm-ar">
374 <primary sortas="b-llvm-ar">llvm-ar</primary>
375 </indexterm>
376 </listitem>
377 </varlistentry>
378
379 <varlistentry id="llvm-as">
380 <term><command>llvm-as</command></term>
381 <listitem>
382 <para>
383 is the <application>LLVM</application> assembler.
384 </para>
385 <indexterm zone="llvm llvm-as">
386 <primary sortas="b-llvm-as">llvm-as</primary>
387 </indexterm>
388 </listitem>
389 </varlistentry>
390
391 <varlistentry id="llvm-bcanalyzer">
392 <term><command>llvm-bcanalyzer</command></term>
393 <listitem>
394 <para>
395 is the <application>LLVM</application> bitcode analyzer.
396 </para>
397 <indexterm zone="llvm llvm-bcanalyzer">
398 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
399 </indexterm>
400 </listitem>
401 </varlistentry>
402
403 <varlistentry id="llvm-config">
404 <term><command>llvm-config</command></term>
405 <listitem>
406 <para>
407 Prints <application>LLVM</application> compilation options.
408 </para>
409 <indexterm zone="llvm llvm-config">
410 <primary sortas="b-llvm-config">llvm-config</primary>
411 </indexterm>
412 </listitem>
413 </varlistentry>
414
415 <varlistentry id="llvm-cov">
416 <term><command>llvm-cov</command></term>
417 <listitem>
418 <para>
419 is used to emit coverage information.
420 </para>
421 <indexterm zone="llvm llvm-cov">
422 <primary sortas="b-llvm-cov">llvm-cov</primary>
423 </indexterm>
424 </listitem>
425 </varlistentry>
426
427 <varlistentry id="llvm-diff">
428 <term><command>llvm-diff</command></term>
429 <listitem>
430 <para>
431 is the <application>LLVM</application> structural
432 '<command>diff</command>'.
433 </para>
434 <indexterm zone="llvm llvm-diff">
435 <primary sortas="b-llvm-diff">llvm-diff</primary>
436 </indexterm>
437 </listitem>
438 </varlistentry>
439
440 <varlistentry id="llvm-dis">
441 <term><command>llvm-dis</command></term>
442 <listitem>
443 <para>
444 is the <application>LLVM</application> disassembler.
445 </para>
446 <indexterm zone="llvm llvm-dis">
447 <primary sortas="b-llvm-dis">llvm-dis</primary>
448 </indexterm>
449 </listitem>
450 </varlistentry>
451
452 <varlistentry id="llvm-extract">
453 <term><command>llvm-extract</command></term>
454 <listitem>
455 <para>
456 is used to extract a function from an
457 <application>LLVM</application> module.
458 </para>
459 <indexterm zone="llvm llvm-extract">
460 <primary sortas="b-llvm-extract">llvm-extract</primary>
461 </indexterm>
462 </listitem>
463 </varlistentry>
464
465 <varlistentry id="llvm-link">
466 <term><command>llvm-link</command></term>
467 <listitem>
468 <para>
469 is the <application>LLVM</application> linker.
470 </para>
471 <indexterm zone="llvm llvm-link">
472 <primary sortas="b-llvm-link">llvm-link</primary>
473 </indexterm>
474 </listitem>
475 </varlistentry>
476
477 <varlistentry id="llvm-nm">
478 <term><command>llvm-nm</command></term>
479 <listitem>
480 <para>
481 is used to list <application>LLVM</application> bitcode
482 and object file's symbol table.
483 </para>
484 <indexterm zone="llvm llvm-nm">
485 <primary sortas="b-llvm-nm">llvm-nm</primary>
486 </indexterm>
487 </listitem>
488 </varlistentry>
489<!--
490 <varlistentry id="llvm-prof">
491 <term><command>llvm-prof</command></term>
492 <listitem>
493 <para>
494 is used to print execution profile of
495 <application>LLVM</application> program.
496 </para>
497 <indexterm zone="llvm llvm-prof">
498 <primary sortas="b-llvm-prof">llvm-prof</primary>
499 </indexterm>
500 </listitem>
501 </varlistentry>-->
502
503 <varlistentry id="llvm-ranlib">
504 <term><command>llvm-ranlib</command></term>
505 <listitem>
506 <para>
507 is used to generate index for <application>LLVM</application>
508 archive.
509 </para>
510 <indexterm zone="llvm llvm-ranlib">
511 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
512 </indexterm>
513 </listitem>
514 </varlistentry>
515
516 <varlistentry id="llvm-stress">
517 <term><command>llvm-stress</command></term>
518 <listitem>
519 <para>
520 is used to generate random
521 <filename class="extension">.ll</filename> files.
522 </para>
523 <indexterm zone="llvm llvm-stress">
524 <primary sortas="b-llvm-stress">llvm-stress</primary>
525 </indexterm>
526 </listitem>
527 </varlistentry>
528
529 <varlistentry id="llvm-tblgen">
530 <term><command>llvm-tblgen</command></term>
531 <listitem>
532 <para>
533 is the <application>LLVM</application> Target Description
534 To C++ Code Generator.
535 </para>
536 <indexterm zone="llvm llvm-tblgen">
537 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
538 </indexterm>
539 </listitem>
540 </varlistentry>
541
542 <varlistentry id="opt">
543 <term><command>opt</command></term>
544 <listitem>
545 <para>
546 is the <application>LLVM</application> optimizer.
547 </para>
548 <indexterm zone="llvm opt">
549 <primary sortas="b-opt">opt</primary>
550 </indexterm>
551 </listitem>
552 </varlistentry>
553
554 <varlistentry id="scan-build">
555 <term><command>scan-build</command></term>
556 <listitem>
557 <para>
558 is a <application>Perl</application> script that invokes the
559 <application>Clang</application> static analyzer.
560 </para>
561 <indexterm zone="llvm scan-build">
562 <primary sortas="b-scan-build">scan-build</primary>
563 </indexterm>
564 </listitem>
565 </varlistentry>
566
567 <varlistentry id="libllvm">
568 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
569 <listitem>
570 <para>
571 contains the <application>LLVM</application> API functions.
572 </para>
573 <indexterm zone="llvm libllvm">
574 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
575 </indexterm>
576 </listitem>
577 </varlistentry>
578<!--
579 <varlistentry id="libprofile_rt">
580 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
581 <listitem>
582 <para>
583 is the C, C++ and Objective-C runtime library for
584 <application>Clang</application>.
585 </para>
586 <indexterm zone="llvm libprofile_rt">
587 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
588 </indexterm>
589 </listitem>
590 </varlistentry>-->
591
592 </variablelist>
593
594 </sect2>
595
596</sect1>
Note: See TracBrowser for help on using the repository browser.