この節で説明されているコンパイラー・オプションを使用して、次を行うことができます。
前述のオプションはすでに 32 ビット環境で一部提供されていますが、そのオプションでは 64 ビット・アーキテクチャーに特有の新しい設定値が指定されています。この節では、こうした場合の新しい設定のみについて説明しています。ここにまとめたオプションは主に、 64 ビット・プラットフォームの開発者を対象とします。
構文
-q32
64 ビット環境で 32 ビットのコンパイル・ビット・モード (簡単に言えば、 32 ビット・モード) を使用できるようにします。 -q32 オプションではコンパイル・ビット・モードが指定され、 -qarch オプションとの組み合わせで、32 ビット実行モジュールが実行されるターゲット・マシンが決まります。
規則
例
-qarch=ppc -q32
-qarch=ppc -q32 -qarch=rs64a
-qarch の最後の設定値が優先される点に注意してください。
-qarch=ppc -q32 -qarch=rs64a -q64-q64 を指定すると、以前のインスタンスである -q32 がオーバーライドされる点に注意してください。
構文
-q64|[={largetype|nolargetype}]
64 ビットのコンパイル・ビット・モードが指定され、 -qarch オプションとの組み合わせで、 64 ビット実行モジュールが実行されるターゲット・マシンが決まります。 -q64 オプションを指定すると、オブジェクト・モジュールが 64 ビットのオブジェクト様式で作成され、64 ビットの命令セットが生成されます。注意点として、32 ビット環境でコンパイルを行って 64 ビット・オブジェクトを作成することもできますが、そのオブジェクトは、-q64 オプションを使って 64 ビット環境にリンクする必要があります。
デフォルト
-q64=largetype は、AIX 5.1 以降で -q64 をコンパイルするときのデフォルト設定です。 64 ビット LDT ABI を生成するには -q64=largetype サブオプションを使用します。しかし、-q64=nolargetype は、AIX 5.1 以降で、以前の 64 ビット非 LTD ABI を生成するために指定することができます。
-q64=nolargetype は、AIX 4.3.3 で -q64 をコンパイルするときのデフォルト設定です。 -q64=nolargetype サブオプションを指定して、以前の 64 ビット非 LDT ABI を生成します。「ラージ・データ型」をサポートしない、以前の AIX バージョンで 64 ビット LDT ABI オブジェクトを生成するには、 -q64=largetype を指定します。
規則
以下に例を示します。
-q64 -qarch=601
では設定値 -q64 -qarch=ppc になり、警告メッセージが表示されます。
制限
/usr/lpp/xlf/include_64ldt.
include_64=/home/joe/inc64dirまた、コンパイラーを、AIX 5L システムで -q64 オプションを指定して起動すると、コンパイラーは実際には以下を検索します。
/home/joe/inc64dirldt.
例
次の例では、RS64I (RS64a でも知られている) をターゲットとして 64 ビット・コンパイルを行います。
-q32 -qarch=rs64a -q64
次の例では、64 ビット・アーキテクチャーの共通グループ (現在は RS64I、RS64II、RS64III、POWER3、および POWER4 だけからなる) をターゲットとする 64 ビット・コンパイルを行います。
-q64 -qarch=com
次の例では、-qarch オプションは、-q64 と矛盾しています。
-qarch=601 -q64
結果として -q64 -qarch=ppc という設定になり、警告メッセージが表示されます。
次の例では、-qarch オプションは、-q64 と矛盾しています。
-q64 -qarch=601
結果として -q64 -qarch=ppc という設定になり、警告メッセージが表示されます。
次の例は有効で、AIX 5L でのコンパイルを想定しています。
xlf90 a.f b.f -q64=largetype -o ldt_app
これは次のものと同じです。
xlf90 a.f b.f -q64 -o ldt_app
その理由は、LDT サポートのある AIX バージョンでコンパイルするとき、 -q64=largetype はデフォルトだからです。
以下の例では、ソース・ファイルは、AIX 4.3.3 でコンパイル可能です。
xlf90 a.f b.f -q64=largetype -c
しかし、結果のオブジェクト・ファイル a.o および b.o は、現在 AIX 5L でリンクする必要があります。
次の例は、無効で、新規 64 ビット ABI オブジェクトと以前の 64 ビット ABI オブジェクトをリンクしようとしています。この例は、どのレベルの AIX でもエラーになります。
xlf90 a.f -q64=largetype -c xlf90 b.f -q64=nolargetype -c xlf90 a.o b.o -q64 -o ldt_app
構文
-qarch=rs64a
実行する実行モジュールのターゲット・アーキテクチャーが RS64I となるように指定します。
規則
関連情報
-qarch コンパイラー・オプションの詳細については、-qarch オプションを参照してください。
構文
-qarch=rs64b
実行する実行モジュールのターゲット・アーキテクチャーが RS64II となるように指定します。
規則
関連情報
-qarch コンパイラー・オプションの詳細については、-qarch オプションを参照してください。
構文
-qarch=rs64c
実行する実行モジュールのターゲット・アーキテクチャーが RS64III となるように指定します。
規則
関連情報
-qarch コンパイラー・オプションの詳細については、-qarch オプションを参照してください。
構文
-qtune=rs64a
PowerPC RS64I プロセッサーの最適化をチューニングします。
次に示すオプションのいずれかも指定すると、 -qtune=rs64a オプションを指定することができます。
-qtune=rs64a オプションは、-qarch=rs64a オプションのデフォルトです。
関連情報
-qtune コンパイラー・オプションの詳細については、 -qtune オプションを参照してください。
構文
-qtune=rs64b
PowerPC RS64II プロセッサーの最適化をチューニングします。
次に示すオプションのいずれかも指定すると、 -qtune=rs64b オプションを指定することができます。
-qtune=rs64b オプションは、-qarch=rs64b オプションのデフォルトです。
関連情報
-qtune コンパイラー・オプションの詳細については、 -qtune オプションを参照してください。
構文
-qtune=rs64c
PowerPC RS64III プロセッサーの最適化をチューニングします。
次に示すオプションのいずれかも指定すると、 -qtune=rs64c オプションを指定することができます。
-qtune=rs64c オプションは、-qarch=rs64c オプションのデフォルトです。
関連情報
-qtune コンパイラー・オプションの詳細については、 -qtune オプションを参照してください。
構文
-qwarn64 | -qnowarn64
32 ビット環境から 64 ビット環境へのコードの移植の際に役立ちます。つまり、8 バイト整数ポインターの 4 バイトへの切り捨てが検出されます。 -qwarn64 オプションでは、情報メッセージを使って、32 ビットから 64 ビットへのマイグレーションで問題の原因となり得るステートメントが識別されます。オプション名は、AIX コンパイラーの C に対する互換性を備えています。
規則