LinuxSir.cn,穿越时空的Linuxsir!

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

(已解决)请教关于 firefox 的 Segmentation fault 问题

[复制链接]
发表于 2010-1-29 12:46:40 | 显示全部楼层 |阅读模式
我用的是 SVN 的 LFS+BLFS。
xulrunner + firefox 的 .mozconfig 都相同。
firefox 版本, 系统的版本与问题无关。
如果整个系统用 -march=native -O3 -pipe -fomit-frame-pointer 的参数,则,从很早以前到现在,运行时,都只有一个 Segmentation fault 的结果,没有任何输出,用 strace 的结果也看不明白。就算 xulrunner + firefox 不加参数编译,也是这个结果。
如果整个系统和firefox都用 -march=native -O2 -pipe -fomit-frame-pointer ,则可以正常运行。
是不是某个依赖的包不能用 -O3 的编译参数?
又会是哪个包?
发表于 2010-1-29 14:01:01 | 显示全部楼层
It does happen when certain packages are compiled with -O3 but OK with -O2.

I have the same issue with SeaMonkey, which is also GTK+2 based, with gcc-4.4+.  However, it is also compiler dependent.  The same piece of software may be OK with -O3 if it is compiler with older version of gcc.

As for me, SeaMonkey is OK for gcc-4.3.x with -O3.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-29 16:40:47 | 显示全部楼层
现在好了,目前问题是定位在 Zlib 上。
我用 -O2 重新编译了Zlib,可以正常用了。呵呵
我只是知其然而不知其所以然。
好像我出问题时所用的 GCC 都是4.4的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-29 18:11:26 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-30 18:13:05 | 显示全部楼层
问题不单单与 zlib 有关。应该是 gcc 4.4 与软件优化参数之间的问题。
我将所有与 xulrunner,firefox 直接依赖的软件都用 -O2 重新编译,然后,xulrunner,firefox 加上--enable-optimize=-O2 因为“less then -O2 causes a segfault on x86”(直接引用 gentoo 中 eclass 文件中的说明。)现在正常能用了,如果有空,我再用二分法什么的排除一下,找找具体是哪个软件的问题。只是这样手动编译排查太麻烦了,看来得学学用脚本来完成。

在等待编译的过程中,玩玩 slashem 是个不错的选择。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-2 14:35:53 | 显示全部楼层
用 -O3 还是有莫名的崩溃,所以用 -O2 重新做了个系统。
追新+优化=不稳定。所以折中一下,用 -O2 来追新。
回复 支持 反对

使用道具 举报

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

本版积分规则

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