Files
LFS_Book/chapter06/gmp.xml
Anton Maisak ad3e3c2700 batch c++,
gmp 6 ch
2018-05-24 17:43:57 +03:00

150 lines
7.5 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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>&amp;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>