Files
LFS_Book/chapter06/libffi.xml
Anton Maisak 35665418fc SYNC
Revision: 11441
Author: bdubbs
Date: 27 июля 2018 г. 0:19:52
Message:
Update mirror and translation info.
Update to gcc-8.2.0.
Update to file-5.34.
Update to linux-4.17.10.

----
Modified : /trunk/BOOK/appendices/acknowledgments.xml
Modified : /trunk/BOOK/chapter01/changelog.xml
Modified : /trunk/BOOK/general.ent
Modified : /trunk/BOOK/packages.ent

- usage (WiP)
- xz
- libffi
2018-07-27 10:54:15 +03:00

124 lines
5.2 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-libffi" role="wrap">
<?dbhtml filename="libffi.html"?>
<sect1info condition="script">
<productname>libffi</productname>
<productnumber>&libffi-version;</productnumber>
<address>&libffi-url;</address>
</sect1info>
<title>Libffi-&libffi-version;</title>
<indexterm zone="ch-system-libffi">
<primary sortas="a-libffi">libffi</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Переносимый, высокоуровневый интерфейс по различным соглашениям о вызовах. Программы во время компиляции могу не знать об аргументах, которые были переданы функции. Например, интерпретатору можно указать во время выполнения количество аргументов и указать их тип, для вызова функции. Libffi может использоваться в программах как "мост" от интерпретатора к скомпилированному коду.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&libffi-ch6-sbu;</seg>
<seg>&libffi-ch6-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Установка пакета Libffi</title>
<para>Модифицируйте Makefile чтобы установить заголовочные файлы в стандартный каталог
<filename class="directory">/usr/include</filename> вместо
<filename class="directory">/usr/lib/libffi-3.2.1/include</filename>.</para>
<screen><userinput remap="pre">sed -e '/^includesdir/ s/$(libdir).*$/$(includedir)/' \
-i include/Makefile.in
sed -e '/^includedir/ s/=.*$/=@includedir@/' \
-e 's/^Cflags: -I${includedir}/Cflags:/' \
-i libffi.pc.in</userinput></screen>
<para>Подготовьте пакет libffi к компиляции:</para>
<screen><userinput remap="configure">./configure --prefix=/usr --disable-static --with-gcc-arch=native</userinput></screen>
<variablelist>
<title>Значения параметров конфигурации:</title>
<varlistentry>
<term><parameter>--with-gcc-arch=native</parameter></term>
<listitem>
<para>Erfpsdftn, что gcc оптимизирован для текущей системы. Если аргумент явно не указан, то система будет определена автоматически, и генерируемый код может быть неправильным для некоторых систем. Если сгенерированный код будет скопирован из системы в менее совместимую, задаёте её в качестве параметра. Подробнее о альтернативных типах систем см. <ulink
url='https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/x86-Options.html'> параметры x86 в руководстве gcc </ulink>.
Ensure gcc optimizes for the current system. If this
is not specified, the system is guessed and the code generated
may not be correct for some systems. If the generated code
will be copied from the native system to a less capable
system, use the less capable system as a parameter. For details
about alternative system types, see <ulink
url='https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/x86-Options.html'>
the x86 options in the gcc manual</ulink>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Скомпилируйте пакет:</para>
<screen><userinput remap="make">make</userinput></screen>
<para>Для выполнения тестов, выполните команду:</para>
<screen><userinput remap="test">make check</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make install</userinput></screen>
</sect2>
<sect2 id="contents-libffi" role="content">
<title>Содержимое пакета Libffi</title>
<segmentedlist>
<segtitle>Установленная библиотека</segtitle>
<seglistitem>
<seg>libffi.so</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Краткое описание</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="libffi">
<term><filename class="libraryfile">libffi</filename></term>
<listitem>
<para>Содержит libffi API функции</para>
<indexterm zone="ch-system-libffi">
<primary sortas="c-libffi">libffi</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>