LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: EricNeon

gentoo月隐流剑宗第一章:GCC4——使命的召唤!

[复制链接]
 楼主| 发表于 2005-6-4 11:32:51 | 显示全部楼层
make.conf的问题还是多多,注意CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden",这是针对C++的编译参数。在编译gcc4.0.0的beta时,这样设置可以说是非常顺利,但是从gcc4.0.1开始,这样设置就又是暂时不做推荐!只需要CXXFLAGS="${CFLAGS}",如此即可,越是想调细节,就越是要对GCC有深入了解,可惜我想说:我不懂编程。

接着就是对于USE这个gentoo最经典控制的痛苦经验。关于/etc/make.conf中的USE意义和用法,在/etc/make.conf.example文件中已经有详细的描述。但是我在实际的操作中,也发现了一个所谓“技巧”。当我开始考虑怎么设置一些有用的USE时,我想到的第一点就是自己的cpu参数。所以我使用

  1. #cat /proc/cpuinfo
复制代码
来得到flags,然后把cpuinfo的flags写到USE中去。这个技巧在当你建设一个完整的比如GNOME桌面环境时也许是正确的,但是对于一个即将编译的stage2,stage3来说,这个技巧就是有点过而不及的嫌疑。为什么?因为cpuinfo出来的flags确实是你当前cpu确定的信息,对于整个系统的编译也非常有用,但是这些参数太多了。如果没有设置USE,那么从stage2开始emerge system时,只需要编译63个组件,而一旦将cpu的flags加到USE中,emerge system时必然会将X也包含进去,如果你不幸得又自己加了“gtk gnome qt kde fb splash unicode java”等等参数,那么也许你要等好上大半天才能把system编译完,而这个system其实并不是真正的system核心了。
于是痛定思痛,设置一个最小的USE范围。现在我的USE是这样设置的:

  1. USE="nptl nptlonly multitarget multislot fortran -ipv6 -doc"
复制代码

注意“nptl nptlonly”这两个设置是启用glibc的nptl线程库的。NPTL(Native Posix Thread Library)使用2.6内核的新特性重写了 Linux 的线程库,取代历史悠久而备受争议的LinuxThreads成为glibc 的首选线程库。在线程创建/销毁开销方面,NPTL的改进相当明显(降低约600%)。NPTL能极大提高SMP环境下服务器系统的整体性能(超过65%),相对而言,对单处理机系统影响较小(10%左右);2.6内核的抢占特性对系统性能影响很小(不超过±1%),某些情况下甚至有所下降;超线程技术在LinuxThreads中的影响是负面的,在NPTL中是正面的,但影响幅度都很小(5%-6%)。具体测试可以看一下IBM开发人员社区的文章: http://www-128.ibm.com/developer ... cn-newsletter-linux
nptlonly的使用可以防止glibc重复编译多次,以节省时间。
回复 支持 反对

使用道具 举报

发表于 2005-6-4 11:40:09 | 显示全部楼层
标题非常酷啊,让我对 GCC4 期望更高
回复 支持 反对

使用道具 举报

发表于 2005-6-4 11:50:31 | 显示全部楼层
请顺便简单介绍一下multitarget multislot fortran,因为我的USE中没有。
回复 支持 反对

使用道具 举报

发表于 2005-6-4 12:26:45 | 显示全部楼层
不错

正在把系统全面换成 GCC 40
回复 支持 反对

使用道具 举报

发表于 2005-6-4 13:28:55 | 显示全部楼层
Post by jhuangjiahua
不错

正在把系统全面换成 GCC 40




花花跳槽過?鞧entoo吧 :cool:
回复 支持 反对

使用道具 举报

发表于 2005-6-4 17:00:43 | 显示全部楼层
好的




















































这是不可能的~~~











除非你给我一台 ibook ~~~





PS: Jwing 的这个头像不错

快去 骗 MM 吧

回头把 MM share 一下
回复 支持 反对

使用道具 举报

发表于 2005-6-4 17:06:35 | 显示全部楼层
一般编译器有很多很多优化选项,如果你是编译器专家的话,可以逐项细调。对于普通程序员,-o <n> 其实是编译器作者推荐的一组优化选项的组合,一种简写方式。

gcc 用到 -o 3 最高了,-o 9 甚至 -o 20 都是当成 -o 3 处理的。有些编译器有 -o 4 级别,更高的我没见过,不知道有没有。
回复 支持 反对

使用道具 举报

发表于 2005-6-4 17:31:34 | 显示全部楼层
自己用的东西基本都是 -O3

感觉针对 386 , 686 速度都没有区别

-O3 就快好多
回复 支持 反对

使用道具 举报

发表于 2005-6-4 19:07:38 | 显示全部楼层
Post by jhuangjiahua
好的




这是不可能的~~~



除非你给我一台 ibook ~~~


PS: Jwing 的这个头像不错

快去 骗 MM 吧

回头把 MM share 一下



對花花MM的這種行爲表示?娏褺S

回复 支持 反对

使用道具 举报

发表于 2005-6-4 19:08:40 | 显示全部楼层
Post by jhuangjiahua
自己用的东西基本都是 -O3

感觉针对 386 , 686 速度都没有区别

-O3 就快好多




感覺不准了吧,Arch不就比Debian快多了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表