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