You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
7.4 KiB
HTML
142 lines
7.4 KiB
HTML
4 years ago
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
|
<html>
|
||
|
<!-- This manual describes how to install and use the GNU multiple precision
|
||
|
arithmetic library, version 6.1.0.
|
||
|
|
||
|
Copyright 1991, 1993-2015 Free Software Foundation, Inc.
|
||
|
|
||
|
Permission is granted to copy, distribute and/or modify this document under
|
||
|
the terms of the GNU Free Documentation License, Version 1.3 or any later
|
||
|
version published by the Free Software Foundation; with no Invariant Sections,
|
||
|
with the Front-Cover Texts being "A GNU Manual", and with the Back-Cover
|
||
|
Texts being "You have freedom to copy and modify this GNU Manual, like GNU
|
||
|
software". A copy of the license is included in
|
||
|
GNU Free Documentation License. -->
|
||
|
<!-- Created by GNU Texinfo 6.4, http://www.gnu.org/software/texinfo/ -->
|
||
|
<head>
|
||
|
<title>Notes for Package Builds (GNU MP 6.1.0)</title>
|
||
|
|
||
|
<meta name="description" content="How to install and use the GNU multiple precision arithmetic library, version 6.1.0.">
|
||
|
<meta name="keywords" content="Notes for Package Builds (GNU MP 6.1.0)">
|
||
|
<meta name="resource-type" content="document">
|
||
|
<meta name="distribution" content="global">
|
||
|
<meta name="Generator" content="makeinfo">
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||
|
<link href="index.html#Top" rel="start" title="Top">
|
||
|
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
|
||
|
<link href="Installing-GMP.html#Installing-GMP" rel="up" title="Installing GMP">
|
||
|
<link href="Notes-for-Particular-Systems.html#Notes-for-Particular-Systems" rel="next" title="Notes for Particular Systems">
|
||
|
<link href="ABI-and-ISA.html#ABI-and-ISA" rel="prev" title="ABI and ISA">
|
||
|
<style type="text/css">
|
||
|
<!--
|
||
|
a.summary-letter {text-decoration: none}
|
||
|
blockquote.indentedblock {margin-right: 0em}
|
||
|
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
|
||
|
blockquote.smallquotation {font-size: smaller}
|
||
|
div.display {margin-left: 3.2em}
|
||
|
div.example {margin-left: 3.2em}
|
||
|
div.lisp {margin-left: 3.2em}
|
||
|
div.smalldisplay {margin-left: 3.2em}
|
||
|
div.smallexample {margin-left: 3.2em}
|
||
|
div.smalllisp {margin-left: 3.2em}
|
||
|
kbd {font-style: oblique}
|
||
|
pre.display {font-family: inherit}
|
||
|
pre.format {font-family: inherit}
|
||
|
pre.menu-comment {font-family: serif}
|
||
|
pre.menu-preformatted {font-family: serif}
|
||
|
pre.smalldisplay {font-family: inherit; font-size: smaller}
|
||
|
pre.smallexample {font-size: smaller}
|
||
|
pre.smallformat {font-family: inherit; font-size: smaller}
|
||
|
pre.smalllisp {font-size: smaller}
|
||
|
span.nolinebreak {white-space: nowrap}
|
||
|
span.roman {font-family: initial; font-weight: normal}
|
||
|
span.sansserif {font-family: sans-serif; font-weight: normal}
|
||
|
ul.no-bullet {list-style: none}
|
||
|
-->
|
||
|
</style>
|
||
|
|
||
|
|
||
|
</head>
|
||
|
|
||
|
<body lang="en">
|
||
|
<a name="Notes-for-Package-Builds"></a>
|
||
|
<div class="header">
|
||
|
<p>
|
||
|
Next: <a href="Notes-for-Particular-Systems.html#Notes-for-Particular-Systems" accesskey="n" rel="next">Notes for Particular Systems</a>, Previous: <a href="ABI-and-ISA.html#ABI-and-ISA" accesskey="p" rel="prev">ABI and ISA</a>, Up: <a href="Installing-GMP.html#Installing-GMP" accesskey="u" rel="up">Installing GMP</a> [<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
|
||
|
</div>
|
||
|
<hr>
|
||
|
<a name="Notes-for-Package-Builds-1"></a>
|
||
|
<h3 class="section">2.3 Notes for Package Builds</h3>
|
||
|
<a name="index-Build-notes-for-binary-packaging"></a>
|
||
|
<a name="index-Packaged-builds"></a>
|
||
|
|
||
|
<p>GMP should present no great difficulties for packaging in a binary
|
||
|
distribution.
|
||
|
</p>
|
||
|
<a name="index-Libtool-versioning"></a>
|
||
|
<a name="index-Shared-library-versioning"></a>
|
||
|
<p>Libtool is used to build the library and ‘<samp>-version-info</samp>’ is set
|
||
|
appropriately, having started from ‘<samp>3:0:0</samp>’ in GMP 3.0 (see <a href="http://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning">Library interface versions</a> in <cite>GNU
|
||
|
Libtool</cite>).
|
||
|
</p>
|
||
|
<p>The GMP 4 series will be upwardly binary compatible in each release and will
|
||
|
be upwardly binary compatible with all of the GMP 3 series. Additional
|
||
|
function interfaces may be added in each release, so on systems where libtool
|
||
|
versioning is not fully checked by the loader an auxiliary mechanism may be
|
||
|
needed to express that a dynamic linked application depends on a new enough
|
||
|
GMP.
|
||
|
</p>
|
||
|
<p>An auxiliary mechanism may also be needed to express that <samp>libgmpxx.la</samp>
|
||
|
(from <samp>--enable-cxx</samp>, see <a href="Build-Options.html#Build-Options">Build Options</a>) requires <samp>libgmp.la</samp>
|
||
|
from the same GMP version, since this is not done by the libtool versioning,
|
||
|
nor otherwise. A mismatch will result in unresolved symbols from the linker,
|
||
|
or perhaps the loader.
|
||
|
</p>
|
||
|
<p>When building a package for a CPU family, care should be taken to use
|
||
|
‘<samp>--host</samp>’ (or ‘<samp>--build</samp>’) to choose the least common denominator among
|
||
|
the CPUs which might use the package. For example this might mean plain
|
||
|
‘<samp>sparc</samp>’ (meaning V7) for SPARCs.
|
||
|
</p>
|
||
|
<p>For x86s, <samp>--enable-fat</samp> sets things up for a fat binary build, making a
|
||
|
runtime selection of optimized low level routines. This is a good choice for
|
||
|
packaging to run on a range of x86 chips.
|
||
|
</p>
|
||
|
<p>Users who care about speed will want GMP built for their exact CPU type, to
|
||
|
make best use of the available optimizations. Providing a way to suitably
|
||
|
rebuild a package may be useful. This could be as simple as making it
|
||
|
possible for a user to omit ‘<samp>--build</samp>’ (and ‘<samp>--host</samp>’) so
|
||
|
‘<samp>./config.guess</samp>’ will detect the CPU. But a way to manually specify a
|
||
|
‘<samp>--build</samp>’ will be wanted for systems where ‘<samp>./config.guess</samp>’ is
|
||
|
inexact.
|
||
|
</p>
|
||
|
<p>On systems with multiple ABIs, a packaged build will need to decide which
|
||
|
among the choices is to be provided, see <a href="ABI-and-ISA.html#ABI-and-ISA">ABI and ISA</a>. A given run of
|
||
|
‘<samp>./configure</samp>’ etc will only build one ABI. If a second ABI is also
|
||
|
required then a second run of ‘<samp>./configure</samp>’ etc must be made, starting
|
||
|
from a clean directory tree (‘<samp>make distclean</samp>’).
|
||
|
</p>
|
||
|
<p>As noted under “ABI and ISA”, currently no attempt is made to follow system
|
||
|
conventions for install locations that vary with ABI, such as
|
||
|
<samp>/usr/lib/sparcv9</samp> for ‘<samp>ABI=64</samp>’ as opposed to <samp>/usr/lib</samp> for
|
||
|
‘<samp>ABI=32</samp>’. A package build can override ‘<samp>libdir</samp>’ and other standard
|
||
|
variables as necessary.
|
||
|
</p>
|
||
|
<p>Note that <samp>gmp.h</samp> is a generated file, and will be architecture and ABI
|
||
|
dependent. When attempting to install two ABIs simultaneously it will be
|
||
|
important that an application compile gets the correct <samp>gmp.h</samp> for its
|
||
|
desired ABI. If compiler include paths don’t vary with ABI options then it
|
||
|
might be necessary to create a <samp>/usr/include/gmp.h</samp> which tests
|
||
|
preprocessor symbols and chooses the correct actual <samp>gmp.h</samp>.
|
||
|
</p>
|
||
|
|
||
|
<hr>
|
||
|
<div class="header">
|
||
|
<p>
|
||
|
Next: <a href="Notes-for-Particular-Systems.html#Notes-for-Particular-Systems" accesskey="n" rel="next">Notes for Particular Systems</a>, Previous: <a href="ABI-and-ISA.html#ABI-and-ISA" accesskey="p" rel="prev">ABI and ISA</a>, Up: <a href="Installing-GMP.html#Installing-GMP" accesskey="u" rel="up">Installing GMP</a> [<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
</body>
|
||
|
</html>
|