source: archive/llvm3.xml@ 0080c54

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 0080c54 was 4c6edac, checked in by Ken Moffat <ken@…>, 7 years ago

Rustc-1.19.0, archive llvm-3 and also the separate cargo which is now installed by rust.

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

  • Property mode set to 100644
File size: 8.6 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 <!-- for the moment, this is internally llvm-old but visibly llvm3
8 so that when rust eventually understands a less-old version the
9 visible fields, and the page itself, can be moved to that newer
10 number -->
11 <!ENTITY llvm-old-download-http "http://llvm.org/releases/&llvm-old-version;/llvm-&llvm-old-version;.src.tar.xz">
12 <!ENTITY llvm-old-download-ftp " ">
13 <!ENTITY llvm-old-md5sum "3259018a7437e157f3642df80f1983ea">
14 <!ENTITY llvm-old-size "18 MB">
15 <!ENTITY llvm-old-buildsize "663 MB (112 MB installed) plus 101 MB for the testsuite">
16 <!ENTITY llvm-old-time "6.9 SBU (plus 1.8 SBU for the testsuite, both with parallelism=4)">
17]>
18
19<sect1 id="llvm-old" xreflabel="LLVM-&llvm-old-version;">
20 <?dbhtml filename="llvm-old.html"?>
21
22 <sect1info>
23 <othername>$LastChangedBy$</othername>
24 <date>$Date$</date>
25 </sect1info>
26
27 <title>LLVM-&llvm-old-version;</title>
28
29 <indexterm zone="llvm-old">
30 <primary sortas="a-llvm3">LLVM3</primary>
31 </indexterm>
32
33 <sect2 role="package">
34 <title>Introduction to llvm3</title>
35
36 <para>
37 This is an old version of <application>llvm</application>, installed
38 in /opt so that <xref linkend="rust"/> can use it. For normal use you
39 should install <xref linkend="llvm"/>.
40 </para>
41
42 <para>
43 This version of the <application>LLVM</application> package contains old
44 versions of the libraries, using the API which
45 <application>Rust</application> expects. Although <xref linkend="rust"/>
46 ships with a version of LLVM-3.9 and will build and link to it statically,
47 its <application>rustbuild</application> build-system will always compile
48 a large number of cross-compilers for different architectures. Using a
49 separate LLVM avoids that.
50 </para>
51
52 <para>
53 By using a separate <application>LLVM-3.9.1</application> it will be
54 possible to save time when upgrading <application>Rust</application> (the
55 overall time for the first build will be similar both with and without
56 separate <application>LLVM-3.9.1</application>).
57 </para>
58
59 &lfs80_checked;
60
61 <bridgehead renderas="sect3">Package Information</bridgehead>
62 <itemizedlist spacing="compact">
63 <listitem>
64 <para>
65 Download (HTTP): <ulink url="&llvm-old-download-http;"/>
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Download (FTP): <ulink url="&llvm-old-download-ftp;"/>
71 </para>
72 </listitem>
73 <listitem>
74 <para>
75 Download MD5 sum: &llvm-old-md5sum;
76 </para>
77 </listitem>
78 <listitem>
79 <para>
80 Download size: &llvm-old-size;
81 </para>
82 </listitem>
83 <listitem>
84 <para>
85 Estimated disk space required: &llvm-old-buildsize;
86 </para>
87 </listitem>
88 <listitem>
89 <para>
90 Estimated build time: &llvm-old-time;
91 </para>
92 </listitem>
93 </itemizedlist>
94
95 <bridgehead renderas="sect3">llvm3 Dependencies</bridgehead>
96
97 <bridgehead renderas="sect4">Required</bridgehead>
98 <para role="required">
99 <xref linkend="cmake"/>
100 </para>
101
102 <bridgehead renderas="sect4">Recommended</bridgehead>
103 <para role="recommended">
104 <xref linkend="python2"/>
105 </para>
106
107 <bridgehead renderas="sect4">Optional</bridgehead>
108 <para role="optional">
109 <xref linkend="doxygen"/>,
110 <xref linkend="graphviz"/>,
111 <xref linkend="libffi"/> (if you force this to be
112 used, the build of <xref linkend="rust"/> will need to be altered)
113 <xref linkend="libxml2"/>,
114 <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>),
115 <xref linkend="valgrind"/>,
116 <xref linkend="zip"/>,
117 <ulink url="http://www.ocaml.org/">OCaml</ulink>, and
118 <ulink url="https://pypi.python.org/pypi/Sphinx">Sphinx</ulink>
119 </para>
120
121 <para condition="html" role="usernotes">
122 User Notes: <ulink url="&blfs-wiki;/llvm3"/>
123 </para>
124 </sect2>
125
126 <sect2 role="installation">
127 <title>Installation of llvm3</title>
128
129 <para>
130 Install <application>llvm3</application> by running the following
131 commands:
132 </para>
133
134<screen><userinput>mkdir -v build &amp;&amp;
135cd build &amp;&amp;
136
137CC=gcc CXX=g++ \
138cmake -DCMAKE_INSTALL_PREFIX=/opt/llvm3 \
139 -DCMAKE_BUILD_TYPE=Release \
140 -DLLVM_BUILD_LLVM_DYLIB=ON \
141 -DLLVM_LINK_LLVM_DYLIB=ON \
142 -DLLVM_TARGETS_TO_BUILD="host" \
143 -DLLVM_INSTALL_UTILS=ON \
144 -Wno-dev .. &amp;&amp;
145make</userinput></screen>
146
147 <para>
148 To test the results, issue: <command>make check-all</command>. The tests
149 are run using the maximum number of processors/threads available, but the
150 main part of the added time is spent compiling the test programs. This
151 works fine with parallel make.
152 </para>
153
154 <para>
155 Now, as the <systemitem class="username">root</systemitem> user:
156 </para>
157
158<screen role="root"><userinput>echo "/opt/llvm3/lib" >> /etc/ld.so.conf &amp;&amp;
159make install &amp;&amp;
160/sbin/ldconfig &amp;&amp;
161ln -sfv /opt/llvm3/bin/FileCheck /usr/bin</userinput></screen>
162
163 <para>
164 Building the documentation for <emphasis>current</emphasis> LLVM is
165 covered in <xref linkend="llvm"/>, building docs for this old version
166 would be similar, but almost everyone who needs this old version will
167 also need the current version for <xref linkend="mesa"/> so it is
168 redundant to install the docs here.
169 </para>
170
171 </sect2>
172
173 <sect2 role="commands">
174 <title>Command Explanations</title>
175
176 <para>
177 <parameter>-DLLVM_INSTALL_UTILS_=ON</parameter>: This switch enables
178 the installation of old utility programs. Of those,
179 <application>rust</application> looks for <command>FileCheck</command>
180 when its configure checks for a system LLVM, the others are not used.
181 </para>
182
183 <para>
184 <parameter>/sbin/ldconfig</parameter>: This ensures the libraries can be
185 found.
186 </para>
187
188 <para>
189 <parameter>ln -sfv /opt/llvm3/bin/FileCheck /usr/bin</parameter>: This
190 ensures that FileCheck can be found by <application>rust</application>
191 even though <filename class="directory">/opt/llvm3/bin</filename> is not
192 on the PATH (having two versions of <application>LLVM</application>
193 generally available has been known to cause pain).
194 </para>
195
196 </sect2>
197
198 <sect2 role="content">
199 <title>Contents</title>
200
201 <segmentedlist>
202 <segtitle>Installed Program(s)</segtitle>
203 <segtitle>Installed Librar(y,ies)</segtitle>
204 <segtitle>Installed Director(y,ies)</segtitle>
205
206 <seglistitem>
207 <seg>
208 bugpoint, count, FileCheck,
209 llc, lli, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov,
210 llvm-c-test, llvm-cxxdump, llvm-diff, llvm-dis, llvm-dsymutil,
211 llvm-dwarfdump, llvm-dwp, llvm-extract, llvm-lib (symlink to
212 llvm-ar), llvm-link, llvm-lto, llvm-mc, llvm-mcmarkup, llvm-nm,
213 llvm-objdump, llvm-pdbdump, llvm-profdata, llvm-ranlib (symlink to
214 llvm-ar), llvm-readobj, llvm-rtdyld, llvm-size, llvm-split,
215 llvm-stress, llvm-symbolizer, llvm-tblgen, not, obj2yaml, opt, sancov,
216 sanstats, verify-uselistorder, yaml-bench and yaml2obj
217 </seg>
218 <seg>
219 BugpointPasses.so, LLVMHello.so, libLLVM.so, libLLVM*.a (50
220 libraries), libLTO.so
221 </seg>
222 <seg>
223 /opt/llvm3
224 </seg>
225 </seglistitem>
226 </segmentedlist>
227
228 <variablelist>
229 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
230 <?dbfo list-presentation="list"?>
231 <?dbhtml list-presentation="table"?>
232
233 <varlistentry id="FileCheck">
234 <term><command>FileCheck</command></term>
235 <listitem>
236 <para>
237 reads two files (one from standard input,the other specified on the
238 command line) and uses one to verify the other.
239 </para>
240 <indexterm zone="llvm-old FileCheck">
241 <primary sortas="b-FileCheck">FileCheck</primary>
242 </indexterm>
243 </listitem>
244 </varlistentry>
245
246 </variablelist>
247
248 <para>
249 For details of the other items in this package, see <xref linkend="llvm"/>.
250 </para>
251
252 </sect2>
253</sect1>
Note: See TracBrowser for help on using the repository browser.