LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1497|回复: 8

binutils-2.19 带来的问题和性能提高

[复制链接]
发表于 2008-11-13 22:24:50 | 显示全部楼层 |阅读模式
如果您还在固执的使用 glibc-2.7,您需要下面这个补丁。
http://lists.pld-linux.org/mailm ... 0080225/190128.html

否则,编译 glibc-2.7 时,x86目标平台会遇到下面错误。
  1. ../sysdeps/i386/fpu/ftestexcept.c: Assembler messages:
  2. ../sysdeps/i386/fpu/ftestexcept.c:33: Error: suffix or operands invalid for `fnstsw'
复制代码

问题原因在这里
http://www.nabble.com/The-Linux- ... sed-td15360254.html

升级到 binutils-2.19,编译时提速很明显。
如,相同宿主环境,偶准备一份交叉编译工具链(CLFS-Sysroot)用时分别如下
binutils-2.18 + gcc-4.3.1 + glibc-2.7 : 120min [color="Red"](同时编译x86 x86_64两套工具链)
binutils-2.19 + gcc-4.3.2 + glibc-2.7 : 80min [color="Red"](更正准确数据是 100min,同时编译x86 x86_64两套工具链)

运行时会不会有大幅提速暂不清楚。
 楼主| 发表于 2008-11-13 22:44:39 | 显示全部楼层
本次还升级了
gmp-4.2.3 -> gmp-4.2.4
mpfr-2.3.1 -> mpfr-2.3.2

把编译性能提高全归到 binutils-2.19 也许有点武断。
回复 支持 反对

使用道具 举报

发表于 2008-11-13 23:00:23 | 显示全部楼层
差这么多啊……我也试试
回复 支持 反对

使用道具 举报

发表于 2008-11-14 00:48:46 | 显示全部楼层
gmp 及 mpfr 估计影响不大,但 binutils 及 gcc 都同时升了一版,这是 binutils 还是 gcc 带来的很难说得清了

再者 gmp 及 mpfr 是 gcc-4.3.x 的依赖,更有可能是 gmp+mpfr+gcc 一起带来的也说不定

Btw,近日测试 gcc-4.4-20081031 的 snapshot,发现 runtime 的性能要比 gcc-4.3.2 为高,但相同软件编译时间要长很多,差不多要增加 60-80% 之谱,而且很多软件不能通过,如内核、kde-3.5.10 之类,又有一些即使能通过但运行时又有问题的,如 wine 等,但可以肯定的是执行效能上是有改善的,值得期待。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-14 14:01:44 | 显示全部楼层
大版本升级
binutils-2.18 -> binutils-2.19

小版本升级
gcc-4.3.1 -> gcc-4.3.2
gmp-4.2.3 -> gmp-4.2.4
mpfr-2.3.1 -> mpfr-2.3.2

一般情况,小版本增大是除错版,大版本增大带来新功能或性能提升,个人倾向功劳大半归 binutils-2.19 。

gcc-4.4 确实值得期待。
回复 支持 反对

使用道具 举报

发表于 2008-11-14 23:08:06 | 显示全部楼层
俺在公司的机器仍在用 binutils-2.18/gcc-4.3.2/glibc-2.8+gmp-4.2.3/mpfr-2.3.1

有空的时候去编译 wine 或者内核这些比较费时的软件便可对比 binutils 升级前後之别了
回复 支持 反对

使用道具 举报

发表于 2008-11-17 19:57:22 | 显示全部楼层
今天花了一点时间对比 binutils/mpfr/gmp 不同版本下的编译情况,系统用 gcc-4.3.2,glibc-2.8-0929,编译的软件是 wine-1.1.15

我把结果用试算表来对照,见附图。

从结果来看,我认为 binutils-2.19 对整体需时改进不大,是有一点,但不算明显。最少对 wine-1.1.15 的情况看来是这样。旧版 mpfr/gmp 对应新版 binutils 就不打算测试了。

印像中 gcc-4.3.2 对比 gcc-4.3.1 编译出来的二进码的体积是比较细的,我觉得 gcc 虽然是 bug fix,不算 major release,但估计比 binutils 带来的影响要多

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2008-11-19 20:36:16 | 显示全部楼层
d00m3d 兄,打错字了,版本是 20080929.
嘿嘿.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-19 21:47:09 | 显示全部楼层
有些困惑

偶这里用两套工具链建立基本系统用时分别如下 x86_64   x86
binutils-2.18 + gcc-4.3.1 + glibc-2.7 : 190min   175min
binutils-2.19 + gcc-4.3.2 + glibc-2.7 : 213min   195min
                      +23min   +20min
新工具链建立基本系统用时还有增加,(仅升级内核和工具链,基本系统中其他软件版本一样)

与建立工具链时结果刚好相反。
回复 支持 反对

使用道具 举报

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

本版积分规则

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