Download - Modest04 firefox-3.6.4以降のビルドについて
2010/5/15 Mozi l l a 勉 強会@東京 3rd
firefox-3.6.4以降のビルドについて
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
自己紹介・名前:アベヒロキ (hATrayflood)・職業:会社員 → Now Neeting ...・URL:http://rayflood.org/diary/・住所:長野市 地元:東御市
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
1. ビルドオプションの追加2. モジュール依存関係の変更3. 最適化オプションとの兼ね合い4. 実際のビルド
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
まず、by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
「プラグインのプロセス分離」の略称「OOPP」は呼びづらいのでここでは「IPC」と呼びます。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
1. ビルドオプションの追加
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
--enable-ipc IPCを有効にする。デフォルト。 オフにするには、--disable-ipc。--enable-libxul (firefox-3.0から) dllとxptをひとまとめにする。デフォルト。 IPCを有効にする場合は必須。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
2. モジュール依存関係
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
3. 最適化オプションとの兼ね合い
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
--enable-optimize コンパイラに/O2などを渡せる。--enable-jemalloc Cランタイムを独自に置き換え。 msvcr80.dll → mozcrt19.dll
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
--enable-libxul 前述。ロード時間の短縮。プロファイルガイド付き最適化 ビルド後、実際に実行する。 統計を元に、最適化を実行。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
プロファイルガイド付き最適化(PGO)は大変。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
・所要時間 PGOオフ:約1時間 PGOオン:約3時間 オフに比べて約3倍。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
・メモリ消費 link.exeが最大で1.3GB消費。 OS含めて全体で2GB以上消費。 物理メモリ2GBでも足りない。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
・ディスク消費 PGOオフ:約850MB PGOオン:約7.6GB オフに比べて約9倍。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
てか、普通はPGO前のxul.dllのリンクで落ちる。
fatal error C1083: コンパイラの中間生成物 ファイルを開けません。'../../staticlib/components/gklayout.lib': Not enough space
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
細工してこれを乗り越えても、
今度はリンカの内部エラー。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
Windows自身に細工する必要があるらしい。C:\boot.ini /3GBbugzilla MDC
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
しかし、自分のPCではダメだった。それどころか、Windowsが不安定に。 ビルド機 FMV LOOX R A70N
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
環境によっては、/3GBがダメなのかも。 (公式バイナリのビルド機は、Windows Server 2003らしい)
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
--enable-ipcかつ--disable-libxulでのビルドも企んでみた。(無謀にも)
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
循環参照リンクの罠にハマり、ビルドできても起動時エラー。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
4. 実際のビルド
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
PCにもよるが、/3GBがダメな場合は、何らかのオプションを削らざるを得ない。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
多分、以下の2択。・IPCオン + PGOオフ・IPCとlibxulオフ + PGOオン
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
自分が持ってるVisual Studioは・2005 Std … PGO不可・2008 Std … PGO可なので、
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
2005:IPCオン + PGOオフ2008:IPCとlibxulオフ + PGOオンの構成でビルドすることに。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
結論: IPCかつフル最適化は 環境を選ぶ。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
ところで、by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
Visual Studio 2010はどうなった?
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
試してみた。・巨大libが読めないエラーは克服。・PGO後の内部エラーも克服。・link.exeのメモリ消費もやや改善。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
しかし、jemalloc未対応。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
なので、VS2010でもまだ制約あり。・IPCとPGOオン + jemallocオフ ただし、これは近いうちに可能になると予想。
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
ふぉくす子のイラストお借りしました。多謝。http://piro.sakura.ne.jp/pics/_col.html#y2006
by ABE Hi rok i aka h ATrayf lood
2010/5/15 Mozi l l a 勉 強会@東京 3rd
・リンク集Bug 543034 - Windows builder failing, with nsannotationservice.cpp(457) : "fatal error C1001: An internal error has occurred in the compiler" or "fatal error C1002: compiler is out of heap space in pass 2"https://bugzilla.mozilla.org/show_bug.cgi?id=543034Building with Profile-Guided Optimizationhttps://developer.mozilla.org/en/Building_with_Profile-Guided_OptimizationFMV LOOX R A70Nhttp://www.fmworld.net/fmv/pcpm0804/biblo_loox/lr/index.html
by ABE Hi rok i aka h ATrayf lood