Chapter 5. gcc缺省优化

注意: 由Brian Gallew() 提供

配置 gcc ,使之缺省使用某些标志只是一个简单地编辑文件 /usr/local/lib/gcc-lib/platform/version/specs 的工作.这个文件的格式相当简单.这个文件分成段,每个段三行长. 第一行是 "*section_name(段名称):" (例如 "*asm:"). 第二行是一个标志列表,第三行是空白.

最简单的修改是把需要的缺省标志附加到合适段的列表里面. 比如,让我们假设我有一台运行 linux 的486,上面装有装在缺省位置的 gcc 2.7.2. 在文件 /usr/local/lib/gcc-lib/i486-linux/2.7.2/specs 里,我发现了下面的 13 行:

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


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

如你所见,这里没有任何缺省标志. 如果我总是希望用 "-m486 -fomit-frame-pointer" 标志编译 C 代码, 我会把它改成:

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

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

如果我想为别的使用老版本的 linux 机器的人生成386代码,我会把这些改成下面这样:

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

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

这样将总是忽略帧指针,而且除非在命令行声明 -m386 否则将总是制作486优化代码.

你实际上可以在 specs 文件里做大量的客户化的工作. 不过要记住,这些改变是全局性的,将影响所有使用系统的用户.