gxlc および gxlc++ ユーティリティーは構成ファイル gxlc.cfg を使用して GNU C および C++オプションを XL C/C++ オプションに変換します。 gxlc.cfg の各項目は、ユーティリティーがどのように GNU C または C++ オプションを XL C/C++ オプションにマップし、それを処理するかを記述しています。
1 つの項目は、処理命令のフラグのストリング、GNU C オプションのストリング、および XL C/C++ オプションのストリングで構成されています。この 3 つのフィールドは空白文字で区切られている必要があります。項目に最初の 2 つのフィールドだけが含まれていて、XL C/C++ オプションのストリングが抜けている場合は、2 番目のフィールドの GNU C オプションが gxlc によって認識され、無音で無視されます。
構成ファイルにコメントを挿入するためには、# 文字が使用されます。コメントはそのコメント独自の行、または項目の最後に入れることができます。
以下の構文が gxlc.cfg 内の項目に使用されます。
abcd "gcc_or_g++_option" "xlc_or_xlc++_option"
ここで、
ynn* "-finline" "-qinline"-fno-inline が指定されていると、gxlc はそれを -qnoinline に変換します。
nyn* "-fmyvalue" "-qmyvalue"そして、gxlc および gxlc++ はこれらのオプションの値を予期します。
nni* "-I-"gxlc および gxlc++ はこのオプションを入力として検出すると、処理を行わず、警告を生成します。
nnn* "-fwritable-strings" "-qnoro"
ある範囲のオプションをマップする項目を作成することが可能です。これはアスタリスク (*) とワイルドカードを使用して実行できます。例えば、gcc -D オプションにはユーザー定義名が必須で、オプションの値を取ることができます。以下のオプションのシリーズを持つことが可能です。
-DCOUNT1=100 -DCOUNT2=200 -DCOUNT3=300 -DCOUNT4=400
このオプションの各バージョンごとに項目を作成する代わりに、以下のような単一項目を作成することができます。
nnn* "-D*" "-D*"
ここで、アスタリスクは -D オプションに続く任意のストリングによって置換されます。
逆に、アスタリスクを使用してある範囲のオプションを除外することができます。例えば、gxlc または gxlc++ にすべての -std オプションを無視させたい場合は、以下のような項目を作成することができます。
nni* "-std*"
アスタリスクがオプション定義の中で使用された場合、オプション・フラグ a および b はこれらの項目には適用されません。
文字 % は GNU C または GNU C++ オプションと共に使用して、そのオプションに関連パラメーターがあることを示します。これは、無視されるオプションと関連したパラメーターを、gxlc または gxlc++ が無視することを保証するために使用されます。例えば、-isystem オプションはサポートされておらず、パラメーターを使用しています。両方ともアプリケーションによって無視されなければなりません。この場合、項目は以下のようになります。
nni* "-isystem %"
GNU C および C++ と XL C/C++ オプションのマッピングの完全リストについては、以下を参照してください。
関連情報