|
发表于 2003-1-10 18:42:07
|
显示全部楼层
呵呵,不仅是后缀的问题,i686参数确实有优化的,在/usr/lib/rpm/rpmrc里,前面有一段定义:
# XXX this is the i386 optflags that rpm has traditionally used in the past.
#optflags: i386 -O2 -m486 -fno-strength-reduce
optflags: i386 -O2 -march=i386 -mcpu=i686 <---这里是定义i386参数的优化选项,默认就是用这个
optflags: i486 -O2 -march=i486
optflags: i586 -O2 -march=i586
optflags: i686 -O2 -march=i686 -mcpu=i686 <---这里就是定义i686参数的优化选项,我的CPU是塞扬2,P3结构的,因此我将这行改成optflags: i686 -O3 -march=pentium3 -mcpu=pentium3 -pipe -fomit-frame-pointer
optflags: athlon -O2 -march=athlon
optflags: ia64 -O2
...
...
...
buildarchtranslate: athlon: i686
buildarchtranslate: i686: i386 <--这里最重要,定义了就算是i686体系的机器,还是转换成i386参数编译(大概是为了兼容性和稳定性,采用这种保守的参数编译),这是默认的,只要改成i686:i686,那样只要你的是i686体系的,就会按上面的i686参数优化编译,编译出来的rpm包也是i686后缀的
buildarchtranslate: i586: i386 <--同理,如果你的机器是i586体系的,则修改这行,以下类推
buildarchtranslate: i486: i386
buildarchtranslate: i386: i386
可以看到,默认的i386优化参数和i686优化参数只是-march参数不同而已,因此,优化还不是很彻底,根据自己的机器来设定才能更优化
用rpm --showrc可以看到默认的rpm包优化选项,自己修改一下,运行这个命令看看optflag标志就知道有没有正确设置好了
当然,也不是说,只要修改了/usr/lib/rpm/rpmrc,就必然所有的src.rpm编译时都会优化,这里定义的只是缺省优化选项,但修改了rpmrc后,所有的build出来的rpm的后缀都会是自己指定的那种
有些src.rpm包在spec里自己指定了rpmbuild参数,在编译时无论你的rpmrc如何设置,都只能安装指定的优化参数编译,编译出来的rpm后缀还是i686
还有一些src.rpm包自己在源码包(非spec)的./configure脚本里指定了optflag优化标志,或在./configure时自己检测机器环境来设定optflag,这样rpmrc里指定的优化选项也是没效的,但编译出来的文件后缀还是i686[/quote] |
|