身も心も太陽に

最近SUNの純正コンパイラ「Sun Studio 11」がライセンスフリーになって誰でも使えるようになったというニュースがあった。Linuxの台頭に押されてSUNはsolarisをライセンスフリーにするだけでなくオープンソースにし、次は開発環境も事実上無制限にしたということらしい。
昔のSun WorkShopの時代に80万くらいした統合開発環境がなんとSun Studio 11になってタダ!いい時代になったもんだ…犬よそしてリーナスよありがとう。
昨日solaris10のCompanionCDに入っているgccとgmakeでコンパイルしたら一度のエラーもなく気持ち良かったという話をしたけど、今度はSUNのgccでなく、正真正銘のSUN純正コンパイラを使ってみようという気になった。


早速あまってたurtra5にsolaris10突っ込んで、Sun Studio 11インストール、Sun Studio 11のデフォルトのインストールディレクトリは/opt/SUNWspro/
CCは/opt/SUNWspro/bin/にccが、makeはdmakeてのがある。コンパイルにこいつを使えばよいのだろう。
c++filt f77 f90 f99CってコマンドがあるということはC++もFortran77もFortran99も入ってるってことやな。なんか知らんけどすげー
ということで早速apache2でもコンパイルしてみる。
コンパイルオプションは –enable-mods-shared=most –enable-ssl=shared –prefix=/usr/local/apache2 –enable-so –with-ssl=/usr/sfw
/opt/SUNWspro/bin/ccと/opt/SUNWspro/bin/dmakeを使った。
うむ、とりあえず上手くいった。ちゃんと動いてる。あまりに簡単に成功したので本当にSUN純正コンパイラでコンパイルできているのか?という一抹の不安は残るが…
sparc上のsolarisでSUN純正コンパイラで作ったバイナリは最強の速度やと言う噂やけど、apacheということもあるけど特によくわからん。まぁこの辺は自己満足の世界。次はmysqlでもコンパイルしてベンチでも取ってみるか。
sparcにsolarisにSUN純正コンパイラ…これで身も心もSun Microsystemsに売ったということになる…まぁ、SUNには一銭も払ってはいないけど…
参考までに
ldd /usr/local/apache2/bin/httpd
の結果は

libm.so.2 => /lib/libm.so.2
libaprutil-1.so.0 => /usr/local/apache2/lib/libaprutil-1.so.0
libexpat.so.0 => /usr/local/apache2/lib/libexpat.so.0
libapr-1.so.0 => /usr/local/apache2/lib/libapr-1.so.0
libuuid.so.1 => /lib/libuuid.so.1
libsendfile.so.1 => /lib/libsendfile.so.1
librt.so.1 => /lib/librt.so.1
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1 => /lib/libnsl.so.1
libpthread.so.1 => /lib/libpthread.so.1
libc.so.1 => /lib/libc.so.1
libaio.so.1 => /lib/libaio.so.1
libmd5.so.1 => /lib/libmd5.so.1
libmp.so.2 => /lib/libmp.so.2
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
/platform/SUNW,Ultra-5_10/lib/libmd5_psr.so.1

という感じ。/lib以下のライブラリにしかリンクしていないのは非常に気持ちいい。でもopensslのライブラリにリンクしてないというのはヘッダだけ読んで、バイナリに内蔵したということやろね?たぶん?
まとめ
Sun Studio 11でのapacheのコンパイルの仕方。

#Sun Studio 11をインストール
CD1/installer
#ソースの解凍
gtar zxvf httpd-2.2.0.tar.gz && cd httpd-2.2.0
#コンパイル用環境変数設定(zshがシェルの場合。bashでも)
export PATH=opt/SUNWspro/bin:/opt/SUNWspro/prod/bin:\
 /opt/sfw/bin:/usr/sfw/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/ucb
export CC=/opt/SUNWspro/bin/cc
export LD_LIBRARY_PATH=:/opt/SUNWspro/lib:/opt/SUNWspro/prod/lib:\
 /usr/lib:/usr/ccs/lib:/opt/sfw/lib:/usr/sfw/lib:/usr/lib:
export LDFLAGS=’-L/opt/SUNWspro/lib -L/usr/lib -L/usr/ccs/lib -L/opt/sfw/lib -L/usr/sfw/lib -L/opt/SUNWspro/prod/lib’
export CFLAGS=’-I/opt/SUNWspro/include -I/usr/include -L/opt/sfw/include -L/usr/sfw/include -I/opt/SUNWspro/prod/include’
#Makefile作る (好き好きでオプション変えれ)
./configure –enable-mods-shared=most –enable-ssl=shared –prefix=/usr/local/apache2 –enable-so –with-ssl=/usr/sfw
#makeとインストール
dmake
su
dmake install

コメントする

メールアドレスが公開されることはありません。

PAGE TOP