色々実験したので整理を兼ねたメモ。
- VC9 でビルドしないと一部の拡張 (ICU や gettext) がリンク出来ずビルドに失敗する
- しかし VC9 で 64 bit ビルドしても APC は動作が怪しい (php-cgi -i でエラーが出る)
- VC9 で PGO ビルド (インストルメント生成) するとリンカがメモリ 400 M 喰ったあたりで固まる
- VC10 だと普通に成功
- VC11 はまだ未サポート (configure.js を書き換えてコンパイラを認識させて、MAKEFILE の LDFLAGS の version 表記修正しないと止まる)
PGO ビルドが止まるのはクロスコンパイル環境だからかなあという気もするのですが 64bit の方に VC 環境作るのはちょっと面倒すぎて。
PGO ビルドした方が実行速度が速くなるのは実験で確認済みなので、ここは素直に VC10 でビルドするしか無いかなと。どうせ APC は動作が怪しいのだし、ICU なんて日本語環境じゃ全然使わないし。
あと 32 bit 環境で 64bit バイナリをビルドする場合、nmake snap してしまうと 64 bit バイナリの php が実行出来ずに止まってしまうのでファイルを下記のように修正するか他のオプションを使う必要があります。
- MAKEFILE の mkdist.php 実行部分の php.exe を 32bit php のパスに書き換え
- ソース win32/build/mkdist.php にある deplister.exe 実行パス格納変数 $cmd を 32bit でビルドした deplister.exe のものへ書き換え
64 bit な開発環境が無いと面倒臭いですね、やっぱり。
0 Comments.