Solaris10でTCとTTが動作するようになってからというもの、最新版をずっと試していなかったので久しぶりにビルドしてみました。ちなみに会社にもインストールしていますが、会社ではLua拡張も組み込んでいます。社内用に構文や機能が追加してあるLua拡張版があるのですが、私は標準のままのLuaを使っています。
今回はLuaをサポートしない場合のビルドメモ。
Luaを組み込んでビルドします。他の記事にLuaにビルドの記事がありますので、Luaについてはそちらを参照。
wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.17.tar.gz gtar -zxvf tokyocabinet-1.4.17.tar.gz cd tokyocabinet-1.4.17 ./configure \ CC=gcc \ --prefix=/export/home/tamtam/service/tc-1.4.17 gmake gmake install
wget http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.23.tar.gz gtar -zxvf tokyotyrant-1.1.23.tar.gz cd tokyotyrant-1.1.23 ./configure \ CC=gcc \ LDFLAGS="-R/export/home/tamtam/service/tc-1.4.17/lib -R/export/home/tamtam/service/tt-1.1.23/lib" \ --prefix=/export/home/tamtam/service/tt-1.1.23 \ --with-tc=/export/home/tamtam/service/tc-1.4.17 \ --enable-lua \ --with-lua=/usr/local gmake gmake install
無事にビルドできました。
utaani
http://1978th.net/tokyocabinet/tokyocabinet-1.4.35.tar.gz
で同じ様にビルドできないので困っているのですが、
この記事を書かれた時点で、gccは4系をお使いでしょうか。
タムタム
この記事を書いた時点では3.4.3(3.4.6)と4.1系,4.4系で確認しています。
もう少し詳しい情報をいただけると調査ができるのですが。。(´・ω・)
というわけで環境が古いSolaris10の初期状態と推測してみます。
tc-1.4.35ですが、
gcc-4.1系では正常に通りました。
gcc-3.4.3ではtcutil.cのHUGE_VAL、およびgctdb.cのHUGE_VALLのところでinvalid operands to binary *というビルドエラーが発生しました。
これらはおそらくGCCのバグかと思われます。
http://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg105159.html
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19933
3.4.6の環境では問題なくビルドが通りました。
というわけで3.4系を使っているのであれば.6までバージョンを上げてみてはいかがでしょう。pkgaddで簡単にバージョン上げられます。
あとSolaris10の最新版(uいくつかは忘れました)はもしかして3.4.6かもしれません。
どうしても3.4.3じゃないとダメという場合は、
3.4.6以降の/usr/include/iso/math_c99.hをローカルに持ってきてそっちを参照するようにするとか。。。
utaani
システム管理者と相談して、gccを3.4.6にして無事ビルドできました。
(環境は「SunOS 5.10 Generic_139556-08 i86pc i386 i86pc」ですが、
テストが完了後はSPARC版で動作させなくてはなりません...モウヒトガンバリ)
ありがとうございました。
タムタム
無事にビルドできたみたいで何よりです。
本番機はSPARCですか・・。
utaani
SPARCでも無事ビルドできました。
> uname -a
SunOS c1bl5 5.10 Generic_139555-08 sun4v sparc SUNW,Sun-Blade-T6320
という環境です。
タムタム
動いて何よりです。
SPARCなんてさわったことありませ・・・・と思ったら大学の時、UNIXマシンのOSはSparcでした。