Библиотека 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