source: general/prog/llvm.xml@ abdc2e6

10.0 10.1 11.0 11.1 11.2 7.10 7.4 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 krejzi/svn lazarus nosym perl-modules plabs/python-mods qt5new systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/soup3 xry111/test-20220226
Last change on this file since abdc2e6 was abdc2e6, checked in by Krejzi <krejzi@…>, 10 years ago

LLVM/Clang/Compiler RT 3.2.

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

  • Property mode set to 100644
File size: 16.4 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 "71610289bbc819e3e15fdd562809a2d7">
10 <!ENTITY llvm-size "12 MB">
11 <!ENTITY llvm-buildsize "800 MB">
12 <!ENTITY llvm-time "13.0 SBU (Additional 7.0 SBU for Clang)">
13
14 <!ENTITY clang-download-http "http://llvm.org/releases/&llvm-version;/clang-&llvm-version;.src.tar.gz">
15 <!ENTITY clang-md5sum "3896ef4334df08563b05d0848ba80582">
16 <!ENTITY clang-size "8.4 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 "a9a30ccd7bbee6f68a3ca3020af0d852">
20 <!ENTITY compiler-rt-size "1.4 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 &lfs72_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">Additional Downloads</bridgehead>
92 <itemizedlist spacing="compact">
93 <listitem>
94 <para>
95 Required patch:
96 <ulink url="&patch-root;/llvm-&llvm-version;-blfs_paths-1.patch"/>
97 </para>
98 </listitem>
99 </itemizedlist>
100
101 <bridgehead renderas="sect3">Optional Downloads</bridgehead>
102 <itemizedlist spacing="compact">
103 <listitem>
104 <para>
105 Clang Download (HTTP): <ulink url="&clang-download-http;"/>
106 </para>
107 </listitem>
108 <listitem>
109 <para>
110 Clang Download MD5 sum: &clang-md5sum;
111 </para>
112 </listitem>
113 <listitem>
114 <para>
115 Clang Download size: &clang-size;
116 </para>
117 </listitem>
118 <listitem>
119 <para>
120 Compiler RT Download (HTTP): <ulink url="&compiler-rt-download-http;"/>
121 </para>
122 </listitem>
123 <listitem>
124 <para>
125 Compiler RT Download MD5 sum: &compiler-rt-md5sum;
126 </para>
127 </listitem>
128 <listitem>
129 <para>
130 Compiler RT Download size: &compiler-rt-size;
131 </para>
132 </listitem>
133 </itemizedlist>
134
135 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead>
136
137 <bridgehead renderas="sect4">Recommended</bridgehead>
138 <para role="recommended">
139 <xref linkend="libffi"/>
140 </para>
141
142 <bridgehead renderas="sect4">Optional</bridgehead>
143 <para role="optional">
144 <xref linkend="doxygen"/>,
145 <xref linkend="graphviz"/>,
146 <xref linkend="libxml2"/>,
147 <xref linkend="zip"/>,
148 <ulink url="http://www.ocaml.org/">OCaml</ulink>,
149 <ulink url="http://pypi.python.org/pypi/Sphinx">Sphinx</ulink> and
150 <ulink url="http://www.valgrind.org/">Valgrind</ulink>
151 </para>
152
153 <para condition="html" role="usernotes">User Notes:
154 <ulink url="&blfs-wiki;/llvm"/>
155 </para>
156 </sect2>
157
158 <sect2 role="installation">
159 <title>Installation of LLVM</title>
160
161 <para>
162 If you have downloaded the optional packages, install them into
163 the source tree by running the following commands:
164 </para>
165
166<screen><userinput>tar -xf ../clang-&llvm-version;.src.tar.gz -C tools &amp;&amp;
167tar -xf ../compiler-rt-&llvm-version;.src.tar.gz -C projects &amp;&amp;
168
169mv tools/clang-&llvm-version;.src tools/clang &amp;&amp;
170mv projects/compiler-rt-&llvm-version;.src projects/compiler-rt &amp;&amp;
171
172sed -e "s@../lib/libprofile_rt.a@../lib/llvm/libprofile_rt.a@g" \
173 -i tools/clang/lib/Driver/Tools.cpp</userinput></screen>
174
175 <para>
176 Install <application>LLVM</application> by running the following
177 commands:
178 </para>
179
180<screen><userinput>patch -Np1 -i ../llvm-&llvm-version;-blfs_paths-1.patch &amp;&amp;
181CC=gcc CXX=g++ \
182./configure --prefix=/usr \
183 --sysconfdir=/etc \
184 --libdir=/usr/lib/llvm \
185 --enable-libffi \
186 --enable-optimized \
187 --enable-shared \
188 --enable-targets=all \
189 --disable-assertions \
190 --disable-debug-runtime \
191 --disable-expensive-checks &amp;&amp;
192make</userinput></screen>
193
194 <para>
195 If you have installed <application>Sphinx</application> and wish
196 to generate manual pages, issue the following command:
197 </para>
198
199<screen><userinput>make -C docs -f Makefile.sphinx man</userinput></screen>
200
201 <para>
202 To test the results, issue: <command>make check</command>.
203 </para>
204
205 <para>
206 Now, as the <systemitem class="username">root</systemitem> user:
207 </para>
208
209<screen role="root"><userinput>make install &amp;&amp;
210chmod -v 644 /usr/lib/llvm/*.a &amp;&amp;
211echo /usr/lib/llvm &gt;&gt; /etc/ld.so.conf &amp;&amp;
212ldconfig</userinput></screen>
213
214 <para>
215 If you have built manual pages, install them by running the
216 following command as the
217 <systemitem class="username">root</systemitem> user:
218 </para>
219
220<screen role="root"><userinput>install -m644 docs/_build/man/* /usr/share/man/man1</userinput></screen>
221
222 </sect2>
223
224 <sect2 role="content">
225 <title>Contents</title>
226
227 <segmentedlist>
228 <segtitle>Installed Programs</segtitle>
229 <segtitle>Installed Libraries</segtitle>
230 <segtitle>Installed Directories</segtitle>
231
232 <seglistitem>
233 <seg>
234 bugpoint, c-index-test, clang, clang++, clang-check, clang-tblgen, llc, lli,
235 llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov, llvm-diff, llvm-dis,
236 llvm-dwarfdump, llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup, llvm-nm,
237 llvm-objdump, llvm-prof, llvm-ranlib, llvm-readobj, llvm-rtdyld, llvm-size,
238 llvm-stress, llvm-tblgen, macho-dump and opt
239 </seg>
240 <seg>
241 libclang.so, libLLVM-&llvm-version;.so, libprofile_rt.so
242 and numerous libraries in /usr/lib/llvm
243 </seg>
244 <seg>
245 /usr/include/clang,
246 /usr/include/clang-c,
247 /usr/include/llvm,
248 /usr/include/llvm-c,
249 /usr/lib/clang,
250 /usr/lib/llvm and
251 /usr/share/doc/llvm
252 </seg>
253 </seglistitem>
254 </segmentedlist>
255
256 <variablelist>
257 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
258 <?dbfo list-presentation="list"?>
259 <?dbhtml list-presentation="table"?>
260
261 <varlistentry id="bugpoint">
262 <term><command>bugpoint</command></term>
263 <listitem>
264 <para>
265 is the automatic test case reduction tool.
266 </para>
267 <indexterm zone="llvm bugpoint">
268 <primary sortas="b-bugpoint">bugpoint</primary>
269 </indexterm>
270 </listitem>
271 </varlistentry>
272
273 <varlistentry id="clang">
274 <term><command>clang</command></term>
275 <listitem>
276 <para>
277 is the <application>Clang</application> C, C++,
278 and Objective-C compiler.
279 </para>
280 <indexterm zone="llvm clang">
281 <primary sortas="b-clang">clang</primary>
282 </indexterm>
283 </listitem>
284 </varlistentry>
285
286 <varlistentry id="llc">
287 <term><command>llc</command></term>
288 <listitem>
289 <para>
290 is the <application>LLVM</application> static compiler.
291 </para>
292 <indexterm zone="llvm llc">
293 <primary sortas="b-llc">llc</primary>
294 </indexterm>
295 </listitem>
296 </varlistentry>
297
298 <varlistentry id="lli">
299 <term><command>lli</command></term>
300 <listitem>
301 <para>
302 is used to directly execute programs from
303 <application>LLVM</application> bitcode.
304 </para>
305 <indexterm zone="llvm lli">
306 <primary sortas="b-lli">lli</primary>
307 </indexterm>
308 </listitem>
309 </varlistentry>
310
311 <varlistentry id="llvm-ar">
312 <term><command>llvm-ar</command></term>
313 <listitem>
314 <para>
315 is the <application>LLVM</application> archiver.
316 </para>
317 <indexterm zone="llvm llvm-ar">
318 <primary sortas="b-llvm-ar">llvm-ar</primary>
319 </indexterm>
320 </listitem>
321 </varlistentry>
322
323 <varlistentry id="llvm-as">
324 <term><command>llvm-as</command></term>
325 <listitem>
326 <para>
327 is the <application>LLVM</application> assembler.
328 </para>
329 <indexterm zone="llvm llvm-as">
330 <primary sortas="b-llvm-as">llvm-as</primary>
331 </indexterm>
332 </listitem>
333 </varlistentry>
334
335 <varlistentry id="llvm-bcanalyzer">
336 <term><command>llvm-bcanalyzer</command></term>
337 <listitem>
338 <para>
339 is the <application>LLVM</application> bitcode analyzer.
340 </para>
341 <indexterm zone="llvm llvm-bcanalyzer">
342 <primary sortas="b-llvm-bcanalyzer">llvm-bcanalyzer</primary>
343 </indexterm>
344 </listitem>
345 </varlistentry>
346
347 <varlistentry id="llvm-config">
348 <term><command>llvm-config</command></term>
349 <listitem>
350 <para>
351 Prints <application>LLVM</application> compilation options.
352 </para>
353 <indexterm zone="llvm llvm-config">
354 <primary sortas="b-llvm-config">llvm-config</primary>
355 </indexterm>
356 </listitem>
357 </varlistentry>
358
359 <varlistentry id="llvm-cov">
360 <term><command>llvm-cov</command></term>
361 <listitem>
362 <para>
363 is used to emit coverage information.
364 </para>
365 <indexterm zone="llvm llvm-cov">
366 <primary sortas="b-llvm-cov">llvm-cov</primary>
367 </indexterm>
368 </listitem>
369 </varlistentry>
370
371 <varlistentry id="llvm-diff">
372 <term><command>llvm-diff</command></term>
373 <listitem>
374 <para>
375 is the <application>LLVM</application> structural
376 '<command>diff</command>'.
377 </para>
378 <indexterm zone="llvm llvm-diff">
379 <primary sortas="b-llvm-diff">llvm-diff</primary>
380 </indexterm>
381 </listitem>
382 </varlistentry>
383
384 <varlistentry id="llvm-dis">
385 <term><command>llvm-dis</command></term>
386 <listitem>
387 <para>
388 is the <application>LLVM</application> disassembler.
389 </para>
390 <indexterm zone="llvm llvm-dis">
391 <primary sortas="b-llvm-dis">llvm-dis</primary>
392 </indexterm>
393 </listitem>
394 </varlistentry>
395
396 <varlistentry id="llvm-extract">
397 <term><command>llvm-extract</command></term>
398 <listitem>
399 <para>
400 is used to extract a function from an
401 <application>LLVM</application> module.
402 </para>
403 <indexterm zone="llvm llvm-extract">
404 <primary sortas="b-llvm-extract">llvm-extract</primary>
405 </indexterm>
406 </listitem>
407 </varlistentry>
408
409 <varlistentry id="llvm-link">
410 <term><command>llvm-link</command></term>
411 <listitem>
412 <para>
413 is the <application>LLVM</application> linker.
414 </para>
415 <indexterm zone="llvm llvm-link">
416 <primary sortas="b-llvm-link">llvm-link</primary>
417 </indexterm>
418 </listitem>
419 </varlistentry>
420
421 <varlistentry id="llvm-nm">
422 <term><command>llvm-nm</command></term>
423 <listitem>
424 <para>
425 is used to list <application>LLVM</application> bitcode
426 and object file's symbol table.
427 </para>
428 <indexterm zone="llvm llvm-nm">
429 <primary sortas="b-llvm-nm">llvm-nm</primary>
430 </indexterm>
431 </listitem>
432 </varlistentry>
433
434 <varlistentry id="llvm-prof">
435 <term><command>llvm-prof</command></term>
436 <listitem>
437 <para>
438 is used to print execution profile of
439 <application>LLVM</application> program.
440 </para>
441 <indexterm zone="llvm llvm-prof">
442 <primary sortas="b-llvm-prof">llvm-prof</primary>
443 </indexterm>
444 </listitem>
445 </varlistentry>
446
447 <varlistentry id="llvm-ranlib">
448 <term><command>llvm-ranlib</command></term>
449 <listitem>
450 <para>
451 is used to generate index for <application>LLVM</application>
452 archive.
453 </para>
454 <indexterm zone="llvm llvm-ranlib">
455 <primary sortas="b-llvm-ranlib">llvm-ranlib</primary>
456 </indexterm>
457 </listitem>
458 </varlistentry>
459
460 <varlistentry id="llvm-stress">
461 <term><command>llvm-stress</command></term>
462 <listitem>
463 <para>
464 is used to generate random
465 <filename class="extension">.ll</filename> files.
466 </para>
467 <indexterm zone="llvm llvm-stress">
468 <primary sortas="b-llvm-stress">llvm-stress</primary>
469 </indexterm>
470 </listitem>
471 </varlistentry>
472
473 <varlistentry id="llvm-tblgen">
474 <term><command>llvm-tblgen</command></term>
475 <listitem>
476 <para>
477 is the <application>LLVM</application> Target Description
478 To C++ Code Generator.
479 </para>
480 <indexterm zone="llvm llvm-tblgen">
481 <primary sortas="b-llvm-tblgen">llvm-tblgen</primary>
482 </indexterm>
483 </listitem>
484 </varlistentry>
485
486 <varlistentry id="opt">
487 <term><command>opt</command></term>
488 <listitem>
489 <para>
490 is the <application>LLVM</application> optimizer.
491 </para>
492 <indexterm zone="llvm opt">
493 <primary sortas="b-opt">opt</primary>
494 </indexterm>
495 </listitem>
496 </varlistentry>
497
498 <varlistentry id="libllvm">
499 <term><filename class="libraryfile">libLLVM-&llvm-version;.so</filename></term>
500 <listitem>
501 <para>
502 contains the <application>LLVM</application> API functions.
503 </para>
504 <indexterm zone="llvm libllvm">
505 <primary sortas="c-libllvm">libLLVM-&llvm-version;.so</primary>
506 </indexterm>
507 </listitem>
508 </varlistentry>
509
510 <varlistentry id="libprofile_rt">
511 <term><filename class="libraryfile">libprofile_rt.so</filename></term>
512 <listitem>
513 <para>
514 is the C, C++ and Objective-C runtime library for
515 <application>Clang</application>.
516 </para>
517 <indexterm zone="llvm libprofile_rt">
518 <primary sortas="c-libprofile_rt">libprofile_rt.so</primary>
519 </indexterm>
520 </listitem>
521 </varlistentry>
522
523 </variablelist>
524
525 </sect2>
526
527</sect1>
528
Note: See TracBrowser for help on using the repository browser.