Libffi 库提供一个可移植的高级编程接口,用于处理不同调用惯例。这允许程序在运行时调用任何给定了调用接口的函数。
和 GMP 类似,libffi 在构建时会使用特定于当前处理器的优化。如果是在为另一台计算机构建系统,请将 --with-gcc-arch=
的设定值改为那一台计算机的 CPU
完全实现的某个架构名称。否则,所有链接到 libffi 的程序都可能触发非法指令异常。
准备编译 libffi:
./configure --prefix=/usr \ --disable-static \ --with-gcc-arch=native \ --disable-exec-static-tramp
配置选项的含义:
--with-gcc-arch=native
保证 gcc 为当前系统进行优化。如果不使用该选项,构建系统会猜测系统架构,在某些系统上可能生成不正确的代码。如果要将生成的代码从本地系统复制到指令集功能较弱的系统中,需要使用目标系统架构作为该选项的参数值。关于不同系统架构的信息,参阅 gcc 手册中提供的的 x86 选项。
--disable-exec-static-tramp
禁用静态蹦床函数支持。这是 libffi 的一项新的安全特性,但一些 BLFS 软件包 (特别是 GJS) 尚未适配该特性。
编译该软件包:
make
运行以下命令以测试编译结果:
make check
安装该软件包:
make install