Chapter 5. gcc デフォルト最適化

Note: Brian Gallew()による寄稿。

gcc でデフォルトで特定のフラグを使うためのコンフィギュレーションは、/usr/local/lib/gcc-lib/platform/version/specs ファイルを編集するだけの簡単な作業です。このファイルのフォーマットは簡潔です。 ファイルは 3 行ずつの節に分かれています。 最初の行は「*section_name:」のようになります(たとえば「*asm:」)。2 行目はフラグのリストで、3 行目は空行です。

最も簡易な変更は、希望するデフォルトフラグをそれにふさわしい節のリストに追加することです。たとえば、gcc 2.7.2 をデフォルト位置にインストールした i486 上で起動する Linux があるとします。ファイル /usr/local/lib/gcc-lib/i486-linux/2.7.2/specs の中の 13 行目に下記のような部分があります。

- ----------SECTION----------
*cc1:


- ----------SECTION----------

ご覧のとおり、デフォルトフラグは何もありません。もし C コードのコンパイルにいつも「-m486 -fomit-frame-pointer」を使いたければ、下記のように変更を加えます。

- ----------SECTION----------
*cc1:
- -m486 -fomit-frame-pointer

- ----------SECTION----------

ほったらかしになっている別のもっと古い Linux マシンのために 386 コードを生成したければ、以下のように変更しなければなりません。

- ----------SECTION----------
*cc1:
%{!m386:-m486} -fomit-frame-pointer

- ----------SECTION----------

これは常にフレームポインタを省略します。 「-m386」がコマンドラインで指定されない限り 486 に最適化されたコードを作成します。

specs ファイルでは実際にたくさんのカスタマイズをすることができます。しかし、これらの変更はグローバルでありシステム上のすべてのユーザーに影響を与えることを覚えておいてください。