source: chapter08/gmp.xml@ d23bc9dd

xry111/mips64el
Last change on this file since d23bc9dd was 60dbbd1, checked in by Xi Ruoyao <xry111@…>, 5 months ago

mips64el: gmp: add ABI=64

  • Property mode set to 100644
File size: 5.9 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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 ABI=64 \
71 --docdir=/usr/share/doc/gmp-&gmp-version;</userinput></screen>
72
73 <variablelist>
74 <title>The meaning of the new configure options:</title>
75
76 <varlistentry>
77 <term><parameter>--enable-cxx</parameter></term>
78 <listitem>
79 <para>This parameter enables C++ support</para>
80 </listitem>
81 </varlistentry>
82
83 <varlistentry>
84 <term><parameter>ABI=64</parameter></term>
85 <listitem>
86 <para>This package defaults to use N32 ABI on 64-bit MIPS systems,
87 but LFS expects 64-bit ABI.</para>
88 </listitem>
89 </varlistentry>
90
91 <varlistentry>
92 <term><parameter>--docdir=/usr/share/doc/gmp-&gmp-version;</parameter></term>
93 <listitem>
94 <para>This variable specifies the correct place for the
95 documentation.</para>
96 </listitem>
97 </varlistentry>
98
99 </variablelist>
100
101 <para>Compile the package and generate the HTML documentation:</para>
102
103<screen><userinput remap="make">make
104make html</userinput></screen>
105
106 <important>
107 <para>The test suite for GMP in this section is considered critical.
108 Do not skip it under any circumstances.</para>
109 </important>
110
111 <para>Test the results:</para>
112
113<screen><userinput remap="test">make check 2>&amp;1 | tee gmp-check-log</userinput></screen>
114
115 <caution><para>The code in gmp is highly optimized for the processor where
116 it is built. Occasionally, the code that detects the processor misidentifies
117 the system capabilities and there will be errors in the tests or other
118 applications using the gmp libraries with the message
119 <computeroutput>Illegal instruction</computeroutput>.
120 In this case, gmp should be reconfigured with the option
121 <option>--host=none-linux-gnu</option> and rebuilt.</para></caution>
122
123 <!-- Some tests PASS on a specific uarch but SKIP on other CPUs.
124 For example on K8 the following command outputs 200. -->
125 <para>Ensure that at least 199 tests in the test suite passed.
126 Check the results by issuing the following command:</para>
127
128<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>
129
130 <para>Install the package and its documentation:</para>
131
132<screen><userinput remap="install">make install
133make install-html</userinput></screen>
134
135 </sect2>
136
137 <sect2 id="contents-gmp" role="content">
138 <title>Contents of GMP</title>
139
140 <segmentedlist>
141 <segtitle>Installed libraries</segtitle>
142 <segtitle>Installed directory</segtitle>
143
144 <seglistitem>
145 <seg>libgmp.so and libgmpxx.so</seg>
146 <seg>/usr/share/doc/gmp-&gmp-version;</seg>
147 </seglistitem>
148 </segmentedlist>
149
150 <variablelist>
151 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
152 <?dbfo list-presentation="list"?>
153 <?dbhtml list-presentation="table"?>
154
155 <varlistentry id="libgmp">
156 <term><filename class="libraryfile">libgmp</filename></term>
157 <listitem>
158 <para>Contains precision math functions</para>
159 <indexterm zone="ch-system-gmp libgmp">
160 <primary sortas="c-libgmp">libgmp</primary>
161 </indexterm>
162 </listitem>
163 </varlistentry>
164
165 <varlistentry id="libgmpxx">
166 <term><filename class="libraryfile">libgmpxx</filename></term>
167 <listitem>
168 <para>Contains C++ precision math functions</para>
169 <indexterm zone="ch-system-gmp libgmpxx">
170 <primary sortas="c-libgmpxx">libgmpxx</primary>
171 </indexterm>
172 </listitem>
173 </varlistentry>
174 </variablelist>
175
176 </sect2>
177
178</sect1>
Note: See TracBrowser for help on using the repository browser.