GMP パッケージは数値演算ライブラリを提供します。 このライブラリには任意精度演算 (arbitrary precision arithmetic) を行う有用な関数が含まれます。
32 ビット x86 CPU にて環境構築する際に、64 ビットコードを扱う CPU 環境であって かつ CFLAGS
を指定していると、本パッケージの configure スクリプトは 64 ビット用の処理を行い失敗します。
これを回避するには、以下のように処理してください。
ABI=32
./configure ...
GMP のデフォルト設定に従うと、ホストのプロセッサー向けに最適化したライブラリを生成してしまいます。
ホストに比べて、やや性能の劣るプロセッサーに向けたライブラリを必要とする場合は、汎用ライブラリを生成するために、configure
コマンドに --host=none-linux-gnu
オプションを加えます。
GMP をコンパイルするための準備をします。
./configure --prefix=/usr \ --enable-cxx \ --disable-static \ --docdir=/usr/share/doc/gmp-6.3.0
configure オプションの意味
--enable-cxx
C++ サポートを有効にします。
--docdir=/usr/share/doc/gmp-6.3.0
ドキュメントのインストール先を適切に設定します。
パッケージをコンパイルし HTML ドキュメントを生成します。
make make html
本節における GMP のテストスイートは極めて重要なものです。 したがってどのような場合であっても必ず実行してください。
テストを実行します。
make check 2>&1 | tee gmp-check-log
gmp のコードはビルドするプロセッサー向けに高度に最適化されます。
このためプロセッサーを特定したコードが実はシステム性能を的確に制御できないことも起こりえます。
それはテストにおいてエラーを引き起こしたり、gmp を利用する他のアプリケーションにおいて Illegal instruction
というエラーとして発生したりすることがあります。 そういった場合は gmp の再ビルドが必要であり、その際にはオプション
--host=none-linux-gnu
をつける必要があります。
最低でも 199 個のテストが完了することを確認してください。 テスト結果は以下のコマンドにより確認することができます。
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
パッケージと HTML ドキュメントをインストールします。
make install make install-html