8.49. Libffi-3.4.2

Libffi ライブラリは、さまざまな呼出規約(calling conventions)に対しての、移植性に優れた高レベルのプログラミングインターフェースを提供します。 このライブラリを用いることで、プログラム実行時に呼出インターフェース記述(call interface description)による関数を指定して呼び出すことができるようになります。

概算ビルド時間: 1.9 SBU
必要ディスク容量: 10 MB

8.49.1. Libffi のインストール

[注記]

注記

GMP と同じように libffi では、利用中のプロセッサーに応じた最適化を行なってビルドされます。 異なるシステムに向けてのビルドを行う場合は、以下のコマンドにおいて --with-gcc-arch= を使って、そのシステム上の CPU の実装を完全に表すアーキテクチャー名に変更してください。 そうしなかった場合には、libffi をリンクするアプリケーションにおいて Illegal Operation エラーを発生させることになります。

ibffi をコンパイルするための準備をします。

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

configure オプションの意味

--with-gcc-arch=native

現状のシステムに応じて GCC が最適化されるようにします。 仮にこれを指定しなかった場合、システムを誤認して誤ったコードを生成してしまう場合があります。 生成されたコードが、より劣ったシステム向けのネイティブコードをコピーしていたとすると、より劣ったシステムに対するパラメーターを指定することとなります。 システムに応じた詳細は the x86 options in the GCC manual を参照してください。

--disable-exec-static-tramp

スタティックなトランポリン (trampoline) サポートを無効にします。 これは libffi における新しいセキュリティ機能ですが、BLFS パッケージの中 (特に GJS) では、この機能に対応していないものがあります。

パッケージをコンパイルします。

make

ビルド結果をテストする場合は、以下を実行します。

make check

パッケージをインストールします。

make install

8.49.2. Libffi の構成

インストールライブラリ: libffi.so

概略説明

libffi

外部関数インターフェース API 関数を提供します。