Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
阅读:9394回复:63

VC2010編譯Firefox 7.0 PGO卡在二次編譯(已解決)

楼主#
更多 发布于:2011-09-26 19:25
我的環境是win7 x32 4GB, VC++ 2010 Express
編譯Firefox 7.0 with PGO

目前的問題是我一次編譯可過
也就是編譯過程有到跳出Firefox跑sunspider這邊
跑完過了幾分鐘,編譯畫面停止刷新
make等相關進程不再佔用CPU資源
最後停在這裡

图片:2011-09-26_192152.png



查看dist目錄裡面一次編譯結速後的binary,是可以執行的
但就是二次編譯這樣卡住
請問有哪位大俠知道我的編譯出了什麼問題嗎?

這是我的mozconfig
. $topsrcdir/browser/config/mozconfig
#mk_add_options MOZ_PACKAGE_NSIS=1
ac_add_options --enable-application=browser
#ac_add_options --enable-optimize="-O2 -GL -arch:SSE2 -GS"
ac_add_options --enable-optimize="-O2 -GL -arch:SSE2"
#ac_add_options --enable-profile-guided-optimization
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --disable-installer --disable-updater --disable-update-channel
ac_add_options --disable-accessibility
#ac_add_options --enable-update-packaging
#ac_add_options --disable-vista-sdk-requirements
#ac_add_options --disable-static
#ac_add_options --with-l10n-base=/lang
#ac_add_options --enable-ui-locale=zh-TW
#ac_add_options --enable-official-branding
#
## form tete009
#ac_add_options --disable-auto-deps
#ac_add_options --disable-jemalloc
ac_add_options --disable-crashreporter
#ac_add_options --disable-activex-scripting
#ac_add_options --disable-activex
#
## PGO build
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-pgo
mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py'
#mk_add_options PYTHONPATH='$(OBJDIR)/_profile/pgo'
#mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_MAKE_FLAGS="-j4"
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2011-09-26 19:25
不过压力不在这里

本来FF是MPL授权,使用gcc的pgo后就会变成GPL授权,维护一个GPL授权的项目我除了pcxprj之外不想有过多精力的参与
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2011-09-26 19:25
没有 因为他没使用mingw64-crt产生32位程序

你可以使用我的版本 http://code.google.com/p/pcxprj/downloads/list
coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
3楼#
发布于:2011-09-26 19:25

不需要 Kai的TLS支持早就内建了

mingw-w64确实没有,但gcc -m32还是会链接mingwm10.dll
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2011-09-26 19:25
你可以使用我的版本 http://code.google.com/p/pcxprj/downloads/list
准确的说
MinGW64的CRT很早就内建了,MinGW在今年3-4月份之后的CRT也内建支持了
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2011-09-26 19:25

mingw sucks
32位程序必须动态链接mingwm10.dll以支持多线程。

不需要 Kai的TLS支持早就内建了
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2011-09-26 19:25
coolypf
用mozconfig + client.mk不方便,PGO可以拆成下面3条命令(client.mk中的profiledbuild规则)
make MOZ_PGO_INSTRUMENTED=1 MOZ_PROFILE_GENERATE=1
MOZ_PGO_INSTRUMENTED=1 dist/bin/firefox.exe -profile 'D:\Temp\fxprofile'
make MOZ_PROFILE_USE=1
回到原帖

恩,就是有一部分不会重新configure
他的pgo都由PGO变量来控制

习惯哪个就用哪个
coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
7楼#
发布于:2011-09-26 19:25
dongyuanxun
不想折腾这个 我想转到我的MinGW编译来看看效果
回到原帖

mingw sucks
32位程序必须动态链接mingwm10.dll以支持多线程。
coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
8楼#
发布于:2011-09-26 19:25
Re: VC2010編譯Firefox 7.0 PGO卡在二次編譯
Lawliet
大俠您好

想跟您請教使用pymake編譯後,link的時候貌似會變回單進程
請問有辦法讓link的時候也多線程嗎?
回到原帖

这个没办法,现在似乎还没有可以多线程运行的编译器、链接器。
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2011-09-26 19:25
coolypf:另外,大家不必尝试用VS 2011 Developer Preview进行PGO了,
pgort110.dll有bug,无论32位还是64位,都会appcrash。
回到原帖

不想折腾这个 我想转到我的MinGW编译来看看效果
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2011-09-26 19:25
coolypf
手动复制.pgc到.pgd所在目录是最好的办法,
即使最新mozilla-central中修复了pgomerge.py的bug,还是会有组件漏掉,譬如browsercomps.dll。
回到原帖

这个其实无所谓,browsercomps.dll只对RSS之类有影响
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2011-09-26 19:25
Re: VC2010編譯Firefox 7.0 PGO卡在二次編譯
Lawliet
大俠您好

想跟您請教使用pymake編譯後,link的時候貌似會變回單進程
請問有辦法讓link的時候也多線程嗎?
回到原帖

我觉得链接单线程没什么不好

因为在一个Makefile里只有一个target
dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
12楼#
发布于:2011-09-26 19:25
coolypf你来刷版呢……
Lawliet
火狐狸
火狐狸
  • UID34414
  • 注册日期2010-11-03
  • 最后登录2017-04-02
  • 发帖数201
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
13楼#
发布于:2011-09-26 19:25
Re: VC2010編譯Firefox 7.0 PGO卡在二次編譯
用PyMake,参见 https://developer.mozilla.org/en/pymake

大俠您好

想跟您請教使用pymake編譯後,link的時候貌似會變回單進程
請問有辦法讓link的時候也多線程嗎?
coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
14楼#
发布于:2011-09-26 19:25
强制开启JS引擎的PGO,32位会appcrash,64位版似乎正常    @。@
上一页
游客

返回顶部