どのCデータ型を使うのか,ということを規定したものです。CPUが使用できる命令セットやレジスタを規定したものです。関しては同じファミリー内の古いCPUと互換性があります。CPUもサポートしています。どのABIを使うのかを選択する機能も有しています。どちらかを選択して使うことができるようになっています。デフォルトでは,GMPは使用システムに応じて最適なABIを選択するようになっています。自動的に高速な動作を可能にしてくれます。GMPを明示的に構成したい時には,次のようにABIオプションを指定します。コードが,同一のABIに対してコンパイルされるようになっている,ということが重要です。GMPのリムは常にlong型として実装されています。使用されるのは,生成されたgmp.h内でそのように定義されている時に限られます。なり,それを他の環境にコピペして使い回すことはできないということを意味します。gmp.hがコンパイラ依存になっていまうことは止むを得ません。現状では,特定のABIを対象としたライブラリのインストールやヘッダファイルの生成は行っていません。新たに生成して実行する必要がある,ということを覚えておいて下さい。(‘x86_64’)AMD64システム上では,32ビット,64ビットモードの両方をサポートしており,下記のABIが利用可能です。ABIは64bitリムとポインタを使用してその性能を最大限引き出しており,これがデフォルトになります。アプリケーションは特にコンパイラ用のフラグを設定する必要はありませんが,下記のオプションで指定ができます。ABIは普通のi386用です。比較的低速になってしまうので,64bit環境との相互運用性が必要ないのであれば,これを使用することはお勧めしません。‘-m32’オプションは利用できず,これが唯一のモードでした。64bitリムと32bitポインタを利用します。ABIのような環境では,これでCPUの演算性能を最大限活用できるようになります。このABIが使えないOS環境も存在します。11以降の環境で使用可能です。してコンパイルしなければいけません。ABIと関数呼び出し形式を意味します。関数の内部では64bit命令も使用可能です。long型のリムを使用します。10以降の環境で利用可能です。このABIを使うにはアプリケーション生成時には次のようにコンパイルしなければなりません。long用の64bit命令を生成しませんので,2.0wに対しては低速になります(GMPアセンブラコードも同様です)。1.1のコードを動作させることができます。この場合は特別なコンパイラオプションを付加する必要はありません。‘hppa2.0’,‘hppa64’のCPUタイプすべてで利用可能です。1.0しか利用できません。ビルドする必要があります。GMPはビルド方法を検出し,対応する‘ABI’を選択します。‘itanium*-*-hpux*’)HP-UXはIA-64用に二つのABIをサポートしており,GMPのパフォーマンスはどちらも同程度です。long型をリムとして使用しています。GCCでもデフォルトで使用されます。オプションとしてして明示したいのであれば,下記のように指定して下さい。long型をリムとして使用します。アプリケーション生成時には下記のようにオプション指定してコンパイルして下さい。+DD64他のIA-64システム,例えばGNU/Linuxは‘ABI=64’だけ指定すれば十分です。n32か64を使用することをお勧めします。GMPのパフォーマンスはどちらも同程度です。デフォルトはn32になります。ABIは32bitポインタと整数になり,64bit命令はサポートしません。2.7.2のような古いコンパイラをサポートするためだけに存在しています。フラグを指定せずに新旧のコンパイラを実行する際には下記のオプションを指定して下さい。long型が使えるので64bitリムになります。コンパイル時は次のようにオプション指定を行います。ABIは64bit長のポインタと整数になります。コンパイル時のオプションは下記のようになります。2用のコード生成だけを行います。‘*-*-aix*’システム上ではこれがデフォルトとなります。アプリケーションをコンパイルする時のオプションは下記の通りです。X/Darwin上では下記のように指定します。longリムを使用するものの,CPUは32-bitモードで動作し,32bitの関数呼び出しを行います。ABIが利用できない環境ではこれがデフォルトになります。コンパイラのオプション指定は必要ありません。こnABIはAIX環境下では使用できません。ABIで,32bitリムを使用します。このABIを使う際には,特別なコンパイラオプションを付加する必要はありません。CPUを有効に使用できません。2.7以上(カーネルが64bitモードの場合)で利用可能です。GNU/Linux上では,デフォルトのgccのモードに依存しますが,下記のようにオプションをつけてコンパイルして下さい。-m64Solaris上では次のように指定します。ABIしか使えませんので,オプション指定は不要です。Sunのドキュメントによると,この組み合わせはv8plusと呼ばれているようです。GNU/Linux上では,デフォルトのgccのモードにもよりますが,下記のオプションを指定します。-m32Solaris上では下記のように指定することが望ましいわけですが,特段オプションは付けなくても大丈夫です。2.8以前の場合は‘-mv8’になります)。-xarch=v8plusGMPの速度は‘ABI=64’が最大になるので,使用可能であればこのABIがデフォルトになります。64bit環境では追加のレジスタが利用でき,それ用のコードを持っているので最速になる訳です。オプションをごっちゃにしないで下さい。両方を効果的に指定できます。2.6以前では,カーネルが全てのレジスタを保持しないので,‘ABI=32’だけが利用可能です。‘ABI=64’オプションは受け付けません。下記のように,クロスコンパイルする要領でオプション指定すれば,‘ABI=64’でビルドできます。