summaryrefslogtreecommitdiff
path: root/lfs-12.0-sysv/chapter08/gmp.html
diff options
context:
space:
mode:
authorSn4il <sn4il@thedroth.rocks>2024-01-10 16:57:29 +0300
committerSn4il <sn4il@thedroth.rocks>2024-01-10 16:57:29 +0300
commitc4d43142181a45b849a15cf8ec5ebe61cea33897 (patch)
tree459a90d19e6f1ece81fbf364c1b5292214d99615 /lfs-12.0-sysv/chapter08/gmp.html
parenta044ba7b1561a513e33de0b7c1876aaa401a26d7 (diff)
downloadsn4il-site-c4d43142181a45b849a15cf8ec5ebe61cea33897.tar.gz
sn4il-site-c4d43142181a45b849a15cf8ec5ebe61cea33897.zip
LFS 12 mirror
Diffstat (limited to 'lfs-12.0-sysv/chapter08/gmp.html')
-rw-r--r--lfs-12.0-sysv/chapter08/gmp.html268
1 files changed, 268 insertions, 0 deletions
diff --git a/lfs-12.0-sysv/chapter08/gmp.html b/lfs-12.0-sysv/chapter08/gmp.html
new file mode 100644
index 0000000..7c1e03d
--- /dev/null
+++ b/lfs-12.0-sysv/chapter08/gmp.html
@@ -0,0 +1,268 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
+ <title>
+ 8.19. GMP-6.3.0
+ </title>
+ <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" />
+ <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
+ "text/css" media="print" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ </head>
+ <body class="lfs" id="lfs-12.0">
+ <div class="navheader">
+ <h4>
+ Линукс с нуля - Версия 12.0
+ </h4>
+ <h3>
+ Глава 8. Установка базового системного программного обеспечения
+ </h3>
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="binutils.html" title=
+ "Binutils-2.41">Пред.</a>
+ <p>
+ Binutils-2.41
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="mpfr.html" title="MPFR-4.2.0">След.</a>
+ <p>
+ MPFR-4.2.0
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter08.html" title=
+ "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.0">Начало</a>
+ </li>
+ </ul>
+ </div>
+ <div class="wrap" lang="en" xml:lang="en">
+ <h1 class="sect1">
+ <a id="ch-system-gmp" name="ch-system-gmp"></a>8.19. GMP-6.3.0
+ </h1>
+ <div class="package" lang="en" xml:lang="en">
+ <p>
+ Пакет GMP содержит математические библиотеки. Они содержат полезные
+ функции для арифметики с произвольной точностью.
+ </p>
+ <div class="segmentedlist">
+ <div class="seglistitem">
+ <div class="seg">
+ <strong class="segtitle">Приблизительное время сборки:</strong>
+ <span class="segbody">0.3 SBU</span>
+ </div>
+ <div class="seg">
+ <strong class="segtitle">Требуемое дисковое
+ пространство:</strong> <span class="segbody">54 MB</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="installation" lang="en" xml:lang="en">
+ <h2 class="sect2">
+ 8.19.1. Установка пакета GMP
+ </h2>
+ <div class="admon note">
+ <img alt="[Примечание]" src="../images/note.png" />
+ <h3>
+ Примечание
+ </h3>
+ <p>
+ Если вы выполняете сборку для 32-разрядной архитектуры x86, но
+ ваш процессор, способен выполнять 64-разрядный код, <span class=
+ "emphasis"><em>и</em></span> вы указали в переменных окружения
+ <code class="envar">CFLAGS</code>, скрипт configure попытается
+ выполнить настройку для 64-разрядной системы и завершится
+ ошибкой. Чтобы избежать этого, необходимо вызвать команду
+ configure с приведенным ниже параметром
+ </p>
+ <pre class="userinput"><kbd class="command"><em class=
+ "parameter"><code>ABI=32</code></em> ./configure ...</kbd></pre>
+ </div>
+ <div class="admon note">
+ <img alt="[Примечание]" src="../images/note.png" />
+ <h3>
+ Примечание
+ </h3>
+ <p>
+ Настройки GMP по умолчанию собирают библиотеки, оптимизированные
+ для процессора хоста. Если требуются библиотеки, подходящие для
+ процессоров с меньшей производительностью, чем у процессора
+ хоста, можно собрать общие библиотеки, добавив параметр
+ <code class="option">--host=none-linux-gnu</code> в команде
+ <span class="command"><strong>configure</strong></span>.
+ </p>
+ </div>
+ <p>
+ Подготовьте GMP к компиляции:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">./configure --prefix=/usr \
+ --enable-cxx \
+ --disable-static \
+ --docdir=/usr/share/doc/gmp-6.3.0</kbd></pre>
+ <div class="variablelist">
+ <p class="title">
+ <strong>Значение новых параметров настройки:</strong>
+ </p>
+ <dl class="variablelist">
+ <dt>
+ <span class="term"><em class=
+ "parameter"><code>--enable-cxx</code></em></span>
+ </dt>
+ <dd>
+ <p>
+ Этот параметр включает поддержку C++
+ </p>
+ </dd>
+ <dt>
+ <span class="term"><em class=
+ "parameter"><code>--docdir=/usr/share/doc/gmp-6.3.0</code></em></span>
+ </dt>
+ <dd>
+ <p>
+ Эта переменная указывает местоположение для документации.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Скомпилируйте пакет и сгенерируйте HTML-документацию:
+ </p>
+ <pre class="userinput"><kbd class="command">make
+make html</kbd></pre>
+ <div class="admon important">
+ <img alt="[Важно]" src="../images/important.png" />
+ <h3>
+ Важно
+ </h3>
+ <p>
+ Набор тестов для GMP в этом разделе считается критически важным.
+ Ни в коем случае не пропускайте его.
+ </p>
+ </div>
+ <p>
+ Проверьте результаты:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">make check 2&gt;&amp;1 | tee gmp-check-log</kbd></pre>
+ <div class="admon caution">
+ <img alt="[Внимание]" src="../images/caution.png" />
+ <h3>
+ Внимание
+ </h3>
+ <p>
+ Код в GMP сильно оптимизирован для процессора, на котором он
+ собран. Иногда код, определяющий процессор, неверно определяет
+ возможности системы, и в тестах или других приложениях,
+ использующих библиотеки gmp, возникают ошибки с сообщением
+ "Illegal instruction". В этом случае gmp следует
+ переконфигурировать с параметром <code class=
+ "option">--host=none-linux-gnu</code> и пересобрать.
+ </p>
+ </div>
+ <p>
+ Убедитесь, что все 199 тестов в наборе тестов пройдены. Проверьте
+ результат, выполнив следующую команду:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</kbd></pre>
+ <p>
+ Установите пакет и его документацию:
+ </p>
+ <pre class="userinput"><kbd class="command">make install
+make install-html</kbd></pre>
+ </div>
+ <div class="content" lang="en" xml:lang="en">
+ <h2 class="sect2">
+ <a id="contents-gmp" name="contents-gmp"></a>8.19.2. Содержимое
+ пакета GMP
+ </h2>
+ <div class="segmentedlist">
+ <div class="seglistitem">
+ <div class="seg">
+ <strong class="segtitle">Установленные библиотеки:</strong>
+ <span class="segbody">libgmp.so и libgmpxx.so</span>
+ </div>
+ <div class="seg">
+ <strong class="segtitle">Созданные каталоги:</strong>
+ <span class="segbody">/usr/share/doc/gmp-6.3.0</span>
+ </div>
+ </div>
+ </div>
+ <div class="variablelist">
+ <h3>
+ Краткое описание
+ </h3>
+ <table border="0" class="variablelist">
+ <colgroup>
+ <col align="left" valign="top" />
+ <col />
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <p>
+ <a id="libgmp" name="libgmp"></a><span class=
+ "term"><code class="filename">libgmp</code></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ Содержит точные математические функции
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <a id="libgmpxx" name="libgmpxx"></a><span class=
+ "term"><code class="filename">libgmpxx</code></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ Содержит точные математические функции C++
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ <div class="navfooter">
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="binutils.html" title=
+ "Binutils-2.41">Пред.</a>
+ <p>
+ Binutils-2.41
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="mpfr.html" title="MPFR-4.2.0">След.</a>
+ <p>
+ MPFR-4.2.0
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter08.html" title=
+ "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.0">Начало</a>
+ </li>
+ </ul>
+ </div>
+ </body>
+</html>