コンパイル時の問題の修正

以降の項では、コンパイル時に生じる可能性のある共通問題と、 そのような問題を回避する方法を説明しています。

他のシステムからの拡張機能の再現

移植されたプログラムの中には、他のシステムにある拡張機能に依存しているために、 コンパイルで問題が起きるものもあります。 XL Fortran はそのような拡張機能を多数サポートしていますが、 その中の一部はコンパイラー・オプションでオンにする必要があります。 これらのオプションのリストに関しては 互換性を維持するためのオプションを参照し、 移植に関する概要は XL Fortran へのプログラムの移植を参照してください。

個々のコンパイル単位の問題の分離

コンパイルを正しく実行するために、特定のコンパイル単位が特定の オプションを設定する必要のある場合は、@PROCESS ディレクティブを 利用してソース・ファイル内の設定を適用した方が便利なことがわかります。 ファイルの配置によっては、この方法を使用した方が、さまざまな コマンド行オプションを使用してさまざまなファイルを再コンパイルするよりも 簡単な場合があります。

スレッド・セーフ・コマンドによるコンパイル

たとえば xlf_rxlf90_r のようなスレッド・セーフ呼び出しコマンドは、 スレッド・セーフ以外の呼び出しとは異なる検索パスを使用し、異なるモジュールを呼び出します。 プログラムの異なる使用法については考慮が必要です。 ある環境で正常にコンパイルおよび実行されるプログラムは、異なる使用環境のためにコンパイルおよび 実行されると、予期しない結果をもたらす場合があります。 構成ファイル xlf.cfg には、呼び出しコマンドのそれぞれについて、パス、ライブラリーなどが示されます。 (サンプル構成ファイルとその内容の説明については、構成ファイルのカスタマイズ を参照してください。)

マシン・リソースのこ渇

いずれかのコンパイラー・コンポーネントが動作している間に、オペレーティング・システムのリソース (ページ・スペースまたはディスク・スペース) 上での動作が低下すると、以下のメッセージのいずれかが 表示されます。

1501-229 Compilation ended because of lack of space.
1517-011 Compilation ended.  No more system resources available.
 
1501-053 (S) Too much initialized data.
1501-511. Compilation failed for file [filename].

システムのページ・スペースを増やしてプログラムを再コンパイルする必要がある場合があります。 ページ・スペースの詳細については、

man ページ情報 man 8 mkswap swapon を参照してください。

たとえば、大きな配列の全部または一部を初期化することによって、プログラムが大きなオブジェクト・ファイルを 作成すると、以下のいずれかを行う必要がある場合があります。

IBM Copyright 2003