diff options
author | Sn4il <sn4il@thedroth.rocks> | 2024-01-10 16:57:29 +0300 |
---|---|---|
committer | Sn4il <sn4il@thedroth.rocks> | 2024-01-10 16:57:29 +0300 |
commit | c4d43142181a45b849a15cf8ec5ebe61cea33897 (patch) | |
tree | 459a90d19e6f1ece81fbf364c1b5292214d99615 /lfs-12.0-sysv/chapter08/libffi.html | |
parent | a044ba7b1561a513e33de0b7c1876aaa401a26d7 (diff) | |
download | sn4il-site-c4d43142181a45b849a15cf8ec5ebe61cea33897.tar.gz sn4il-site-c4d43142181a45b849a15cf8ec5ebe61cea33897.zip |
LFS 12 mirror
Diffstat (limited to 'lfs-12.0-sysv/chapter08/libffi.html')
-rw-r--r-- | lfs-12.0-sysv/chapter08/libffi.html | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/lfs-12.0-sysv/chapter08/libffi.html b/lfs-12.0-sysv/chapter08/libffi.html new file mode 100644 index 0000000..4115958 --- /dev/null +++ b/lfs-12.0-sysv/chapter08/libffi.html @@ -0,0 +1,211 @@ +<!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.50. Libffi-3.4.4 + </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="libelf.html" title= + "Libelf из Elfutils-0.189">Пред.</a> + <p> + Libelf из Elfutils-0.189 + </p> + </li> + <li class="next"> + <a accesskey="n" href="Python.html" title="Python-3.11.4">След.</a> + <p> + Python-3.11.4 + </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-libffi" name="ch-system-libffi"></a>8.50. + Libffi-3.4.4 + </h1> + <div class="package" lang="en" xml:lang="en"> + <p> + Библиотека Libffi предоставляет переносимый высокоуровневый + программный интерфейс для различных соглашений о вызовах. Это + позволяет программисту вызывать любую функцию, указанную в описании + интерфейса вызова во время выполнения. + </p> + <p> + FFI расшифровывается как интерфейс внешних функций. FFI позволяет + программе, написанной на одном языке, вызывать программу, + написанную на другом языке. В частности, Libffi может обеспечить + связь между интерпретатором, таким как Perl или Python, и + подпрограммами общей библиотеки, написанными на C или C++. + </p> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Приблизительное время сборки:</strong> + <span class="segbody">1.8 SBU</span> + </div> + <div class="seg"> + <strong class="segtitle">Требуемое дисковое + пространство:</strong> <span class="segbody">11 MB</span> + </div> + </div> + </div> + </div> + <div class="installation" lang="en" xml:lang="en"> + <h2 class="sect2"> + 8.50.1. Установка пакета Libffi + </h2> + <div class="admon note"> + <img alt="[Примечание]" src="../images/note.png" /> + <h3> + Примечание + </h3> + <p> + Как и GMP, Libffi собирается с учетом оптимизаций, специфичных + для используемого процессора. При сборке для другой системы + измените значение параметра <em class= + "parameter"><code>--with-gcc-arch=</code></em> в следующей + команде на имя архитектуры, полностью реализованной процессором в + этой системе. Если этого не сделать, все приложения, ссылающиеся + на <code class="filename">libffi</code>, будут вызывать ошибку + <span class="quote">«<span class="quote">Illegal Operation - + недопустимая операция</span>»</span>. + </p> + </div> + <p> + Подготовьте Libffi к компиляции: + </p> + <pre class="userinput"><kbd class= + "command">./configure --prefix=/usr \ + --disable-static \ + --with-gcc-arch=native</kbd></pre> + <div class="variablelist"> + <p class="title"> + <strong>Значение параметров configure:</strong> + </p> + <dl class="variablelist"> + <dt> + <span class="term"><em class= + "parameter"><code>--with-gcc-arch=native</code></em></span> + </dt> + <dd> + <p> + Убедитесь, что GCC оптимизируется для текущей системы. Если + значение не указано, то архитектура системы угадывается и + сгенерированный код может быть неправильным. Если + сгенерированный код будет скопирован из родной системы в + менее мощную, используйте архитектуру менее мощной системы в + качестве параметра. Дополнительные сведения об альтернативных + типах систем смотрите в <a class="ulink" href= + "https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc/x86-Options.html"> + описании параметров x86 в руководстве GCC</a>. + </p> + </dd> + </dl> + </div> + <p> + Скомпилируйте пакет: + </p> + <pre class="userinput"><kbd class="command">make</kbd></pre> + <p> + Чтобы протестировать пакет, выполните: + </p> + <pre class="userinput"><kbd class="command">make check</kbd></pre> + <p> + Установите пакет: + </p> + <pre class="userinput"><kbd class="command">make install</kbd></pre> + </div> + <div class="content" lang="en" xml:lang="en"> + <h2 class="sect2"> + <a id="contents-libffi" name="contents-libffi"></a>8.50.2. + Содержимое пакета Libffi + </h2> + <div class="segmentedlist"> + <div class="seglistitem"> + <div class="seg"> + <strong class="segtitle">Установленные библиотеки:</strong> + <span class="segbody">libffi.so</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="libffi" name="libffi"></a><span class= + "term"><code class="filename">libffi</code></span> + </p> + </td> + <td> + <p> + Содержит внешний интерфейс для API-функций + </p> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + <div class="navfooter"> + <ul> + <li class="prev"> + <a accesskey="p" href="libelf.html" title= + "Libelf из Elfutils-0.189">Пред.</a> + <p> + Libelf из Elfutils-0.189 + </p> + </li> + <li class="next"> + <a accesskey="n" href="Python.html" title="Python-3.11.4">След.</a> + <p> + Python-3.11.4 + </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> |