Building Mozilla SeaMonkey with new Sun Studio Compiler on Solaris Nevada x86
普通に Sun Studio 11 と同様の 手順でビルドは成功しました。以下は about:buildconfig の結果です。

3つほど注意点をメモしておきます。
Mozilla 側のバグ、
- Bugzilla 323562: Should find Xrender, freetype2, fontconfig using pkg-config
Solaris Nevada は Sun OS 5.11 なので次のファイルが必要でした。
ただこのファイルはなぜか SeaMonkey 1.0.7 のソース tarball には入っていませんでした。なのでソースは cvs から引っ張ってきたものを使うことにしました。
Sun Studio 11 でも最初のリリースで発生していたのですが -xO3 付きだとコンパイラ自体がエラーになる箇所がありました。これはバグ 6513361 としてバグレポートしておきました。このファイルだけは -xO をはずしてコンパイルしました。
- content/xslt/src/xpath/txMozillaXPathTreeWalker.cpp
ビルドに使用したオプションの詳細は次の通りです。 以下のように環境変数を設定しました。
set path=(. /opt/SUNWspro/bin /usr/sfw/bin /opt/sfw/bin /usr/ccs/bin /usr/bin) setenv MOZ_CO_PROJECT suite setenv CC /opt/SUNWspro/bin/cc setenv CXX /opt/SUNWspro/bin/CC setenv MAKE /usr/sfw/bin/gmake.mozconfig です。SeaMonkey なので suite と指定します。デフォルトのツールキットは今まで gtk2 を指定していたのですが cairo-gtk2 を指定できるようですね。
mk_add_options MOZ_CO_PROJECT=suite ac_add_options --enable-application=suite # ac_add_options --enable-xft ac_add_options --enable-svg ac_add_options --enable-canvas ac_add_options --enable-optimize=-xO3 ac_add_options --enable-default-toolkit=cairo-gtk2 ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --enable-shared ac_add_options --disable-auto-deps ac_add_options --disable-freetype2ldd の結果です。
% ldd seamonkey-bin libpthread.so.1 => /lib/libpthread.so.1 libxpcom_core.so => ./libxpcom_core.so libplc4.so => ./libplc4.so libnspr4.so => ./libnspr4.so libdl.so.1 => /lib/libdl.so.1 libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 libX11.so.4 => /usr/openwin/lib/libX11.so.4 libCrun.so.1 => /usr/lib/libCrun.so.1 libc.so.1 => /lib/libc.so.1 libplds4.so => ./libplds4.so libm.so.2 => /lib/libm.so.2 libthread.so.1 => /lib/libthread.so.1 librt.so.1 => /lib/librt.so.1 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 libcairo.so.2 => /usr/lib/libcairo.so.2 libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 libXrandr.so.2 => /usr/X11/lib/libXrandr.so.2 libXrender.so.1 => /usr/sfw/lib/libXrender.so.1 libXi.so.5 => /usr/lib/libXi.so.5 libXext.so.0 => /usr/lib/libXext.so.0 libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 libmlib.so.2 => /usr/lib/libmlib.so.2 libXau.so.6 => /usr/openwin/lib/libXau.so.6 libmp.so.2 => /lib/libmp.so.2 libmd.so.1 => /lib/libmd.so.1 libscf.so.1 => /lib/libscf.so.1 libfreetype.so.6 => /usr/sfw/lib/libfreetype.so.6 libpng12.so.0 => /usr/lib/libpng12.so.0 libz.so.1 => /usr/lib/libz.so.1 libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 libexpat.so.0 => /usr/sfw/lib/libexpat.so.0 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1 /usr/lib/libmlib/libmlib_sse2.so.2 %



