source: chapter08/gmp.xml@ 8a9bdd9

multilib
Last change on this file since 8a9bdd9 was 3ecf6ae, checked in by Thomas Trepl <thomas@…>, 11 months ago

Merge branch 'trunk' into multilib

  • Property mode set to 100644
File size: 9.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
8<sect1 id="ch-system-gmp" role="wrap">
9 <?dbhtml filename="gmp.html"?>
10
11 <sect1info condition="script">
12 <productname>gmp</productname>
13 <productnumber>&gmp-version;</productnumber>
14 <address>&gmp-url;</address>
15 </sect1info>
16
17 <title>GMP-&gmp-version;</title>
18
19 <indexterm zone="ch-system-gmp">
20 <primary sortas="a-GMP">GMP</primary>
21 </indexterm>
22
23 <sect2 role="package">
24 <title/>
25
26 <para>The GMP package contains math libraries. These have useful functions
27 for arbitrary precision arithmetic.</para>
28
29 <segmentedlist>
30 <segtitle>&buildtime;</segtitle>
31 <segtitle>&diskspace;</segtitle>
32
33 <seglistitem>
34 <seg>&gmp-fin-sbu;</seg>
35 <seg>&gmp-fin-du;</seg>
36 </seglistitem>
37 </segmentedlist>
38
39 </sect2>
40
41 <sect2 role="installation">
42 <title>Installation of GMP</title>
43
44 <note>
45 <para>If you are building for 32-bit x86, but you have a CPU which is
46 capable of running 64-bit code <emphasis>and</emphasis> you have specified
47 <envar>CFLAGS</envar> in the environment, the configure script will
48 attempt to configure for 64-bits and fail.
49 Avoid this by invoking the configure command below with
50<screen role="nodump"><userinput><parameter>ABI=32</parameter> ./configure ...</userinput></screen></para>
51 </note>
52
53 <note>
54 <para>The default settings of GMP produce libraries optimized for
55 the host processor. If libraries suitable for processors less
56 capable than the host's CPU are desired, generic libraries can be
57 created by appending the <option>--host=none-linux-gnu</option> option
58 to the <command>configure</command> command.</para>
59
60 <!-- To editors: the configure script says "the none host is obsolete,
61 use - -disable-assembly", but don't believe it: with the latter
62 CFLAGS is still automatically set to -march=something. -->
63 </note>
64
65 <para>Prepare GMP for compilation:</para>
66
67<screen><userinput remap="configure">./configure --prefix=/usr \
68 --enable-cxx \
69 --disable-static \
70 --docdir=/usr/share/doc/gmp-&gmp-version;</userinput></screen>
71
72 <variablelist>
73 <title>The meaning of the new configure options:</title>
74
75 <varlistentry>
76 <term><parameter>--enable-cxx</parameter></term>
77 <listitem>
78 <para>This parameter enables C++ support</para>
79 </listitem>
80 </varlistentry>
81
82 <varlistentry>
83 <term><parameter>--docdir=/usr/share/doc/gmp-&gmp-version;</parameter></term>
84 <listitem>
85 <para>This variable specifies the correct place for the
86 documentation.</para>
87 </listitem>
88 </varlistentry>
89
90 </variablelist>
91
92 <para>Compile the package and generate the HTML documentation:</para>
93
94<screen><userinput remap="make">make
95make html</userinput></screen>
96
97 <important>
98 <para>The test suite for GMP in this section is considered critical.
99 Do not skip it under any circumstances.</para>
100 </important>
101
102 <para>Test the results:</para>
103
104<screen><userinput remap="test">make check 2>&amp;1 | tee gmp-check-log</userinput></screen>
105
106 <caution><para>The code in gmp is highly optimized for the processor where
107 it is built. Occasionally, the code that detects the processor misidentifies
108 the system capabilities and there will be errors in the tests or other
109 applications using the gmp libraries with the message "Illegal
110 instruction". In this case, gmp should be reconfigured with the option
111 <option>--host=none-linux-gnu</option> and rebuilt.</para></caution>
112
113 <para>Ensure that all 199 tests in the test suite passed.
114 Check the results by issuing the following command:</para>
115
116<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>
117
118 <para>Install the package and its documentation:</para>
119
120<screen><userinput remap="install">make install
121make install-html</userinput></screen>
122
123 </sect2>
124
125 <!-- - - - - - - - - - -->
126 <!-- Multilib - 32bit -->
127 <!-- - - - - - - - - - -->
128
129 <sect2 arch="ml_32,ml_all" role="installation">
130 <title>Installation of GMP - 32bit</title>
131
132 <para>Clean previous build:</para>
133
134<screen><userinput remap="pre">make distclean</userinput></screen>
135
136 <para>Generic libraries can be created by running
137 the following:</para>
138
139<screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess
140cp -v configfsf.sub config.sub</userinput></screen>
141
142 <para>Prepare GMP for compilation:</para>
143
144<screen><userinput remap="configure">ABI="32" \
145CFLAGS="-m32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=i686" \
146CXXFLAGS="$CFLAGS" \
147PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
148./configure \
149 --host=i686-pc-linux-gnu \
150 --prefix=/usr \
151 --disable-static \
152 --enable-cxx \
153 --libdir=/usr/lib32 \
154 --includedir=/usr/include/m32/gmp</userinput></screen>
155
156 <variablelist>
157 <title>The meaning of the new configure options:</title>
158
159 <varlistentry>
160 <term><parameter>--includedir=/usr/include/m32/gmp</parameter></term>
161 <listitem>
162 <para>Some definitions in gmp.h differs for each arch but
163 has same name. Therefore, the headers must be separated from
164 each other.</para>
165 </listitem>
166 </varlistentry>
167
168 </variablelist>
169
170 <para>Compile the package:</para>
171
172<screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile
173make</userinput></screen>
174
175 <important>
176 <para>The test suite for GMP in this section is considered critical.
177 Do not skip it under any circumstances.</para>
178 </important>
179
180 <para>Test the results:</para>
181
182<screen><userinput remap="test">make check 2>&amp;1 | tee gmp-check-log</userinput></screen>
183
184 <para>Ensure that all 197 tests in the test suite passed.
185 Check the results by issuing the following command:</para>
186
187<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>
188
189 <para>Install the package:</para>
190
191<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
192cp -Rv DESTDIR/usr/lib32/* /usr/lib32
193cp -Rv DESTDIR/usr/include/m32/* /usr/include/m32/
194rm -rf DESTDIR</userinput></screen>
195
196 </sect2><!-- m32 -->
197
198 <!-- - - - - - - - - - -->
199 <!-- Multilib - x32bit -->
200 <!-- - - - - - - - - - -->
201
202 <sect2 arch="ml_x32,ml_all" role="installation">
203 <title>Installation of GMP - x32-bit</title>
204
205 <para>Clean previous build:</para>
206
207<screen><userinput remap="pre">make distclean</userinput></screen>
208
209 <para>Generic libraries can be created by running
210 the following:</para>
211
212<screen role="nodump"><userinput remap="pre">cp -v configfsf.guess config.guess
213cp -v configfsf.sub config.sub</userinput></screen>
214
215 <para>Prepare GMP for compilation:</para>
216
217<screen><userinput remap="configure">ABI="x32" \
218CFLAGS="-mx32 -O2 -pedantic -fomit-frame-pointer -mtune=generic -march=x86-64" \
219CXXFLAGS="$CFLAGS" \
220PKG_CONFIG_PATH="/usr/libx32/pkgconfig" \
221./configure \
222 --host=x86_64-pc-linux-gnux32 \
223 --prefix=/usr \
224 --disable-static \
225 --enable-cxx \
226 --libdir=/usr/libx32 \
227 --includedir=/usr/include/mx32/gmp</userinput></screen>
228
229 <para>Compile the package:</para>
230
231<screen><userinput remap="make">sed -i 's/$(exec_prefix)\/include/$\(includedir\)/' Makefile
232make</userinput></screen>
233
234 <important>
235 <para>The test suite for GMP in this section is considered critical.
236 Do not skip it under any circumstances.</para>
237 </important>
238
239 <para>Test the results:</para>
240
241<screen><userinput remap="test">make check 2>&amp;1 | tee gmp-check-log</userinput></screen>
242
243 <para>Ensure that all 197 tests in the test suite passed.
244 Check the results by issuing the following command:</para>
245
246<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>
247
248 <para>Install the package:</para>
249
250<screen><userinput remap="install">make DESTDIR=$PWD/DESTDIR install
251cp -Rv DESTDIR/usr/libx32/* /usr/libx32
252cp -Rv DESTDIR/usr/include/mx32/* /usr/include/mx32/
253rm -rf DESTDIR</userinput></screen>
254
255 </sect2><!-- mx32 -->
256
257 <sect2 id="contents-gmp" role="content">
258 <title>Contents of GMP</title>
259
260 <segmentedlist>
261 <segtitle>Installed Libraries</segtitle>
262 <segtitle>Installed directory</segtitle>
263
264 <seglistitem>
265 <seg>libgmp.so and libgmpxx.so</seg>
266 <seg>/usr/share/doc/gmp-&gmp-version;</seg>
267 </seglistitem>
268 </segmentedlist>
269
270 <variablelist>
271 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
272 <?dbfo list-presentation="list"?>
273 <?dbhtml list-presentation="table"?>
274
275 <varlistentry id="libgmp">
276 <term><filename class="libraryfile">libgmp</filename></term>
277 <listitem>
278 <para>Contains precision math functions</para>
279 <indexterm zone="ch-system-gmp libgmp">
280 <primary sortas="c-libgmp">libgmp</primary>
281 </indexterm>
282 </listitem>
283 </varlistentry>
284
285 <varlistentry id="libgmpxx">
286 <term><filename class="libraryfile">libgmpxx</filename></term>
287 <listitem>
288 <para>Contains C++ precision math functions</para>
289 <indexterm zone="ch-system-gmp libgmpxx">
290 <primary sortas="c-libgmpxx">libgmpxx</primary>
291 </indexterm>
292 </listitem>
293 </varlistentry>
294 </variablelist>
295
296 </sect2>
297
298</sect1>
Note: See TracBrowser for help on using the repository browser.