8.49. Libffi-3.4.2

Библиотека Libffi предоставляет переносимый высокоуровневый программный интерфейс для различных соглашений о вызовах. Это позволяет программисту вызывать любую функцию, указанную в описании интерфейса вызова во время выполнения.

Приблизительное время сборки: 1.8 SBU
Требуемое дисковое пространство: 10 MB

8.49.1. Установка пакета Libffi

[Примечание]

Примечание

Подобно GMP, libffi собирается с оптимизацией, специфичной для используемого процессора. При сборке для другой системы измените значение параметра --with-gcc-arch= в следующей команде на имя архитектуры, полностью реализованной процессором в этой системе. Если этого не сделать, все приложения, ссылающиеся на libffi, будут выдавать ошибку «Illegal Operation Errors».

Подготовьте libffi к компиляции:

./configure --prefix=/usr          \
            --disable-static       \
            --with-gcc-arch=native \
            --disable-exec-static-tramp

Значение параметров configure:

--with-gcc-arch=native

Убедитесь, что GCC оптимизируется для текущей системы. Если значение не указано, то архитектура системы угадывается, и созданный код может быть неправильным для некоторых систем. Если созданный код будет скопирован из родной системы в менее мощную, используйте менее мощную систему в качестве параметра. Дополнительные сведения об альтернативных типах систем см. в описании параметров x86 в руководстве GCC.

--disable-exec-static-tramp

Отключить поддержку предотвращения наращивания стека. Это новая функция безопасности в libffi, но некоторые пакеты BLFS (в частности, GJS) не были адаптированы для работы с ней

Скомпилируйте пакет:

make

Чтобы протестировать пакет, выполните:

make check

Установите пакет:

make install

8.49.2. Содержимое пакета Libffi

Установленная библиотека: libffi.so

Краткое описание

libffi

содержит внешний интерфейс для API-функций