mirror of
https://github.com/avmaisak/LFS_Book.git
synced 2026-01-14 02:00:45 +00:00
150 lines
7.5 KiB
XML
150 lines
7.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||
%general-entities;
|
||
]>
|
||
|
||
<sect1 id="ch-system-gmp" role="wrap">
|
||
<?dbhtml filename="gmp.html"?>
|
||
|
||
<sect1info condition="script">
|
||
<productname>gmp</productname>
|
||
<productnumber>&gmp-version;</productnumber>
|
||
<address>&gmp-url;</address>
|
||
</sect1info>
|
||
|
||
<title>GMP-&gmp-version;</title>
|
||
|
||
<indexterm zone="ch-system-gmp">
|
||
<primary sortas="a-GMP">GMP</primary>
|
||
</indexterm>
|
||
|
||
<sect2 role="package">
|
||
<title/>
|
||
|
||
<para>Библиотека GMP (GNU Multi-Precision Library ), предназначенная для вычислений с плавающей запятой, целыми и рациональными числами с произвольной точностью. Библиотека широко используется в криптографических целях и для компьютерных вычислений. Данная библиотека необходима для сборки gcc.</para>
|
||
|
||
<segmentedlist>
|
||
<segtitle>&buildtime;</segtitle>
|
||
<segtitle>&diskspace;</segtitle>
|
||
|
||
<seglistitem>
|
||
<seg>&gmp-ch6-sbu;</seg>
|
||
<seg>&gmp-ch6-du;</seg>
|
||
</seglistitem>
|
||
</segmentedlist>
|
||
|
||
</sect2>
|
||
|
||
<sect2 role="installation">
|
||
<title>Установка пакета GMP</title>
|
||
|
||
<note>
|
||
<para>Если вы выполняете сборку для 32-битной машины x86,но у вас процессор, который совместим и может выполнять 64-битные инструкции и указана переменная окружения <envar>CFLAGS</envar>, сценарий конфигурирования будет запускаться для 64-битной системы и в результате процесс завершиться с ошибкой. Такого поведения можно избежать, если запустить команду configure, как указано ниже:
|
||
<screen role="nodump"><userinput><parameter>ABI=32</parameter> ./configure ...</userinput></screen></para>
|
||
</note>
|
||
|
||
<note>
|
||
<para>Значения по умолчанию GMP создают библиотеки оптимизированные для процессора хост-системы. Если библиотеки, подходящие для процессоров, не желательны, чем процессор хост-системы, то общие библиотеки могут быть созданы следующим образом:
|
||
|
||
<screen role="nodump"><userinput>cp -v configfsf.guess config.guess
|
||
cp -v configfsf.sub config.sub</userinput></screen></para>
|
||
</note>
|
||
|
||
<para>Подготовьте пакет GMP к компиляции:</para>
|
||
|
||
<screen><userinput remap="configure">./configure --prefix=/usr \
|
||
--enable-cxx \
|
||
--disable-static \
|
||
--docdir=/usr/share/doc/gmp-&gmp-version;</userinput></screen>
|
||
|
||
<variablelist>
|
||
<title>Значения новых параметров конфигурации:</title>
|
||
|
||
<varlistentry>
|
||
<term><parameter>--enable-cxx</parameter></term>
|
||
<listitem>
|
||
<para>Аргумент включает поддержку языка Си++ </para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term><parameter>--docdir=/usr/share/doc/gmp-&gmp-version;</parameter></term>
|
||
<listitem>
|
||
<para>Значение этого аргумента указывает на правильное местоположение документации</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
</variablelist>
|
||
|
||
<para>Выполните компиляцию пакета, и сгенерируйте HTML документацию:</para>
|
||
|
||
<screen><userinput remap="make">make
|
||
make html</userinput></screen>
|
||
|
||
<important>
|
||
<para>Выполнение тестов пакета GMP считается критичным.
|
||
Не пропускайте их выполнение ни при каких обстоятельствах.</para>
|
||
</important>
|
||
|
||
<para>Для выполнения тестов, выполните команду:</para>
|
||
|
||
<screen><userinput remap="test">make check 2>&1 | tee gmp-check-log</userinput></screen>
|
||
|
||
<caution><para>Код, скомпилированный пакетом очень сильно оптимизирован для того процессора, на котором он был скомпилирован. Иногда код, который считывает процессор, неверно идентифицирует возможности системы и будут возникать ошибки в тестах или других программах, использующих библиотеки gmp, с сообщением "Illegal instruction". В таком случае, необходимо выполнить повторную конфигурацию пакета с аргументом --build=x86_64-unknown-linux-gnu и выполнить сборку повторно.</para></caution>
|
||
|
||
<para>убедитесь, что все 190 тестов в наборе прошли успешно. Проверьте результаты тестирования, выполнив следующую команду:</para>
|
||
|
||
<screen><userinput remap="test">awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log</userinput></screen>
|
||
|
||
<para>Установите пакет и его документацию:</para>
|
||
|
||
<screen><userinput remap="install">make install
|
||
make install-html</userinput></screen>
|
||
|
||
</sect2>
|
||
|
||
<sect2 id="contents-gmp" role="content">
|
||
<title>Содержимое пакета GMP</title>
|
||
|
||
<segmentedlist>
|
||
<segtitle>Установленные библиотеки</segtitle>
|
||
<segtitle>Каталог установки</segtitle>
|
||
|
||
<seglistitem>
|
||
<seg>libgmp.so and libgmpxx.so</seg>
|
||
<seg>/usr/share/doc/gmp-&gmp-version;</seg>
|
||
</seglistitem>
|
||
</segmentedlist>
|
||
|
||
<variablelist>
|
||
<bridgehead renderas="sect3">Краткое описание</bridgehead>
|
||
<?dbfo list-presentation="list"?>
|
||
<?dbhtml list-presentation="table"?>
|
||
|
||
<varlistentry id="libgmp">
|
||
<term><filename class="libraryfile">libgmp</filename></term>
|
||
<listitem>
|
||
<para>Содержит функции предназначенные для вычислений с плавающей запятой, целыми и рациональными числами с произвольной точностью.</para>
|
||
<indexterm zone="ch-system-gmp libgmp">
|
||
<primary sortas="c-libgmp">libgmp</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry id="libgmpxx">
|
||
<term><filename class="libraryfile">libgmpxx</filename></term>
|
||
<listitem>
|
||
<para>Содержит функции для языка Си++ предназначенные для вычислений с плавающей запятой, целыми и рациональными числами с произвольной точностью.</para>
|
||
<indexterm zone="ch-system-gmp libgmpxx">
|
||
<primary sortas="c-libgmpxx">libgmpxx</primary>
|
||
</indexterm>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
|
||
</sect2>
|
||
|
||
</sect1>
|