gmsh
小狐狸
小狐狸
  • UID33882
  • 注册日期2010-09-03
  • 最后登录2010-09-23
  • 发帖数24
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:5146回复:18

晒一下自己编译的 firefox【附简单步骤】

楼主#
更多 发布于:2010-09-19 22:24
Linux x86_64 gcc 4.4.3 o2 pgo 优化编译速度不是一般的快。
版本库是 rev/7640eb022be6 (mozilla central)
之前用swiftweasel, 无奈项目停止了。于是自己编译之。
第一次编译,和大家交流一下。抛砖引玉吧。
我的步骤如下:
先用 hg clone 一下当前版本库。
然后去 tinderbox 看看当前版本是否能通过 mozilla 自己的编译测试。
配置一下编译链和依赖环境。
定制.mozconfig 文件,有 bug 的话去 bugzilla 看看有没有解决方案,或者自己写 个patch也可。

toolkit 我用的 cairo-gtk2 我第一遍用的 cairo-qt ,bug 重重,无奈换成 gtk2了,虽然我用 KDE sc。

另外我发现了mozilla 的一个小改动,见图.
现在它可以自己管理 cache 大小了。
havanna
狐狸大王
狐狸大王
  • UID22502
  • 注册日期2008-01-01
  • 最后登录2015-10-20
  • 发帖数544
  • 经验14枚
  • 威望0点
  • 贡献值2点
  • 好评度0点
1楼#
发布于:2010-09-19 22:24
4.0的pgo编译版与非pgo编译半的性能差距确实不大了
自己编译,主要还是为提升firefox周边性能,开关某些可有可无的功能选项
Jack
小狐狸
小狐狸
  • UID7249
  • 注册日期2005-07-12
  • 最后登录2011-04-15
  • 发帖数16
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2010-09-19 22:24
忘了说,把libjpeg-turbo装上,编译时用 --with-system-jpeg 能提升打开jpg/jpeg图片的性能:
http://libjpeg-turbo.virtualgl.org/

只是如果当前系统用的libjpeg是8.0.x版本的话,装libjpeg-turbo时得当心点,libjpeg-turbo的API是兼容6.0版本的,和8.0版不兼容,一不小心很多应用程序就用不了了。
Jack
小狐狸
小狐狸
  • UID7249
  • 注册日期2005-07-12
  • 最后登录2011-04-15
  • 发帖数16
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2010-09-19 22:24
不用gnome的话,可以加上这两参数:
ac_add_options --disable-gnomvfs --enable-gio

libpng虽然不支持apng,不过既然用gentoo,打个apng补丁又有什么难的,apng补丁sf上就有:
http://sourceforge.net/projects/libpng-apng/files/

另外,个人编译过几次hg导出的trunk源码版本,从版本号还是3.7时到现在的最新版,结果显示,无论是否用PGO编译(GCC 4.4和4.5都试过),CSS、JS性能测试和非PGO编译出来的相同。

GCC 4.5在全局启用 -flto -ftree-parallelize-loops=n -floop-parallelize-all 后,编译trunk失败,仅仅在export CXXFLAGS=里使用 -ftree-parallelize-loops=n -floop-parallelize-all 可以成功编译,不过性能也没见多少提升。只是现在主要浏览器已经转到chromium,也没以前那么多精力费在fx上了。
gmsh
小狐狸
小狐狸
  • UID33882
  • 注册日期2010-09-03
  • 最后登录2010-09-23
  • 发帖数24
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2010-09-19 22:24

编译beta版即可,追pre是受罪.....
我也有gentoo,layman中的ebuild拖下来修改即可,至于补丁,你可以用其他的,portage的强大在于其use标记,我不是编译狂人,使用的也只是个本子,每次emerge -avuDN world时,一直对本子提心吊胆的....所以最终还是以arch最为日常系统,不过最近对滚动升级有些许厌烦,考虑入手slackware
pacman与emerge,portage与pkgbuild......


实验室有台闲置的 8核至强 服务器,正好拿来编译用。
如果用 ccache 的话,编译一遍不到十分钟。毕竟 trunk 的一次更改不会太多
gmsh
小狐狸
小狐狸
  • UID33882
  • 注册日期2010-09-03
  • 最后登录2010-09-23
  • 发帖数24
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2010-09-19 22:24
arch7819:我通常只编译 js/src 目录, 用 --enable-debug 和 --disable-optimize --enable-ctypes. 我只看这部分代码, 其他我都不看.回到原帖

你用firefox 的js 引擎做什么?我很感兴趣  
cinhoo
狐狸大王
狐狸大王
  • UID31676
  • 注册日期2010-01-21
  • 最后登录2019-01-08
  • 发帖数330
  • 经验15枚
  • 威望0点
  • 贡献值0点
  • 好评度6点
  • 社区居民
  • 忠实会员
6楼#
发布于:2010-09-19 22:24
kmc:你说的是Linux下Firefox的界面,还是Linux操作系统的界面?Linux有很多个版本,很多种桌面环境,你又说的哪一个?回到原帖

当然是firefox的界面
【 在 hailongchang (novice) 的大作中提到: 】 上了Firefox这艘贼船就很难再下来了,我当年是报着试一试的心态用了下Firefox,当然包括当时一些如日中天的插件,这一用就抛弃IE了。几年过后,发现IE8也还不错,但是就是怎么都用不管,Firefox连同上面的那些插件已经彻底绑架了我的习惯,用别的浏览器觉得巨不爽,包括Chrome
xf_mao
狐狸大王
狐狸大王
  • UID31861
  • 注册日期2010-01-29
  • 最后登录2017-09-18
  • 发帖数357
  • 经验19枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
7楼#
发布于:2010-09-19 22:24
确实啊,Fx4的很多功能都是Windows only,比如D2D……
since 2005
arch7819
火狐狸
火狐狸
  • UID30890
  • 注册日期2009-10-29
  • 最后登录2011-02-19
  • 发帖数153
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2010-09-19 22:24
我通常只编译 js/src 目录, 用 --enable-debug 和 --disable-optimize --enable-ctypes. 我只看这部分代码, 其他我都不看.
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
9楼#
发布于:2010-09-19 22:24
你说的是Linux下Firefox的界面,还是Linux操作系统的界面?Linux有很多个版本,很多种桌面环境,你又说的哪一个?
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
cinhoo
狐狸大王
狐狸大王
  • UID31676
  • 注册日期2010-01-21
  • 最后登录2019-01-08
  • 发帖数330
  • 经验15枚
  • 威望0点
  • 贡献值0点
  • 好评度6点
  • 社区居民
  • 忠实会员
10楼#
发布于:2010-09-19 22:24
linux的界面到底哪年才改啊?
真是悲剧!
【 在 hailongchang (novice) 的大作中提到: 】 上了Firefox这艘贼船就很难再下来了,我当年是报着试一试的心态用了下Firefox,当然包括当时一些如日中天的插件,这一用就抛弃IE了。几年过后,发现IE8也还不错,但是就是怎么都用不管,Firefox连同上面的那些插件已经彻底绑架了我的习惯,用别的浏览器觉得巨不爽,包括Chrome
cinhoo
狐狸大王
狐狸大王
  • UID31676
  • 注册日期2010-01-21
  • 最后登录2019-01-08
  • 发帖数330
  • 经验15枚
  • 威望0点
  • 贡献值0点
  • 好评度6点
  • 社区居民
  • 忠实会员
11楼#
发布于:2010-09-19 22:24
havanna:这方面来说,arch的pkgbuild具有无比优势回到原帖

firefox-pgo-beta的pkgbuild竟然更新了。。。
记得前几天还是b4的
【 在 hailongchang (novice) 的大作中提到: 】 上了Firefox这艘贼船就很难再下来了,我当年是报着试一试的心态用了下Firefox,当然包括当时一些如日中天的插件,这一用就抛弃IE了。几年过后,发现IE8也还不错,但是就是怎么都用不管,Firefox连同上面的那些插件已经彻底绑架了我的习惯,用别的浏览器觉得巨不爽,包括Chrome
havanna
狐狸大王
狐狸大王
  • UID22502
  • 注册日期2008-01-01
  • 最后登录2015-10-20
  • 发帖数544
  • 经验14枚
  • 威望0点
  • 贡献值2点
  • 好评度0点
12楼#
发布于:2010-09-19 22:24
gmsh
巧的是我既有 gentoo, 又有arch

gentoo 的 mozilla layman 维护明显跟不上 mozilla 的开发。
arch 的 pacman 系统 有不支持 slots. 更何况arch 本是二进制发行。虽有PKBUILD但是仍然没有 portage 强大。
关于gentoo 的 mozilla overlay, 鬼才知道他打了什么补丁。而且他写的 ebuild 质量也不怎么样。上次我编译 seamonkey 他竟要 apng 的 use,要知道libpng 是没有 apng 的use 的,这样的typo 竟然存在了数周。可见其维护力度。
感觉掌握在自己手里的才最安心。 :wink:
回到原帖

编译beta版即可,追pre是受罪.....
我也有gentoo,layman中的ebuild拖下来修改即可,至于补丁,你可以用其他的,portage的强大在于其use标记,我不是编译狂人,使用的也只是个本子,每次emerge -avuDN world时,一直对本子提心吊胆的....所以最终还是以arch最为日常系统,不过最近对滚动升级有些许厌烦,考虑入手slackware
pacman与emerge,portage与pkgbuild......
gmsh
小狐狸
小狐狸
  • UID33882
  • 注册日期2010-09-03
  • 最后登录2010-09-23
  • 发帖数24
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
13楼#
发布于:2010-09-19 22:24
havanna:ac_add_options --disable-safe-browsing
这一条加上去吧
在linux下,完全用不到去google同步钓鱼站点数据
回到原帖

谢谢,我用 comodo 的 dns, 也有这方面的功能
gmsh
小狐狸
小狐狸
  • UID33882
  • 注册日期2010-09-03
  • 最后登录2010-09-23
  • 发帖数24
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
14楼#
发布于:2010-09-19 22:24
kraml:Gentoo下直接用layman增加mozilla overlay就可以了,实在要定制在它的ebuild基础上修改就好了。回到原帖

[quote="havanna"]这方面来说,arch的pkgbuild具有无比优势[/quote]
巧的是我既有 gentoo, 又有arch

gentoo 的 mozilla overlay 维护明显跟不上 mozilla 的开发。
arch 的 pacman 系统 有不支持 slots. 更何况arch 本是二进制发行。虽有PKBUILD但是仍然没有 portage 强大。
关于gentoo 的 mozilla overlay, 鬼才知道他打了什么补丁。而且他写的 ebuild 质量也不怎么样。上次我编译 seamonkey 他竟要 apng 的 use,要知道libpng 是没有 apng 的use 的,这样的typo 竟然存在了数周。可见其维护力度。
感觉掌握在自己手里的才最安心。
上一页
游客

返回顶部