8.20. GMP-6.3.0

GMP パッケージは数値演算ライブラリを提供します。 このライブラリには任意精度演算 (arbitrary precision arithmetic) を行う有用な関数が含まれます。

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

8.20.1. GMP のインストール

[注記]

注記

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

8.20.2. GMP の構成

インストールライブラリ: libgmp.so, libgmpxx.so
インストールディレクトリ: /usr/share/doc/gmp-6.3.0

概略説明

libgmp

精度演算関数 (precision math functions) を提供します。

libgmpxx

C++ 用の精度演算関数を提供します。