Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3131934
  • 博文数量: 117
  • 博客积分: 10003
  • 博客等级: 上将
  • 技术积分: 5405
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-23 09:34
文章分类

全部博文(117)

文章存档

2011年(1)

2010年(10)

2009年(69)

2008年(37)

分类: LINUX

2009-03-10 14:43:07

配置 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 文件里做大量的客户化的工作. 不过要记住,这些改变是全局性的,将影响所有使用系统的用户.

阅读(1056) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~