タグ「Memcached」が付けられているもの

Memcached1.4.2をx86_Solaris10でビルドする

libevent-1.4.12とmemcached-1.4.2の組み合わせでビルド環境は↓のような感じです。

$uname -a
SunOS tamsvr11 5.10 Generic_137138-09 i86pc i386 i86pc Solaris

$gcc -v
/usr/local/lib/gcc/i386-pc-solaris2.10/3.4.6/specs から spec を読み込み中
コンフィグオプション: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --enable-shared --enable-languages=c,c++,f77
スレッドモデル: posix
gcc バージョン 3.4.6

libeventは普通にconfigureしてgmake; gmake installで通ります。

memcachedは-pthreadなんてオプション知らないよ!怒られます。というわけで怒られないようにするには3種類の方法があります。1つはGCCを使わない(ぉぃ)。2つめはconfigure時に「--disable-coverage」をつける。3つめはMakefileの-pthreadを-pthreadsに置換する。(最後にsがついているのが違いです)

2番目のやり方だと以下のような感じになります。

./configure --prefix=/export/home/tamtam/service/memcached-1.4.
2 --with-libevent=/export/home/tamtam/service/libevent-1.4.12 --disable-coverage
gmake
gmake install

3番目のやり方だと以下のような感じになります。

./configure --prefix=/export/home/tamtam/service/memcached-1.4.
2 --with-libevent=/export/home/tamtam/service/libevent-1.4.12
perl -i -p -e "s/-pthread/-pthreads/g;" Makefile
gmake
gmake install

本当はLDFLAGSに-Rxxxとか指定してますが省略しました。

Solaris10でmemcached1.4をビルドする

  • 投稿日:
  • カテゴリ:

http://memcached.googlecode.com/files/memcached-1.4.0.tar.gz

-は削除、+は追加という意味です。

memcached.h 467行目を修正

-extern void drop_privileges();
+extern void drop_privileges(void);

solaris_priv.cの11行目を修正

+extern void drop_privileges(void);

testapp.cの236行目を修正

-sprintf(pidfile, "/tmp/memcached.%d", getpid());
+sprintf(pidfile, "/tmp/memcached.%ld", getpid());

あとは普通にビルドをすれば通ります。今回リンクしたlibeventは「libevent-1.4.11-stable」です。

参考までにuname -aとgcc -vの結果を。

[tamtam@tamsvr11 work]$ uname -a
SunOS tamsvr11 5.10 Generic_137138-09 i86pc i386 i86pc Solaris
tamtam@tamsvr11 work]$ gcc -v
usr/local/lib/gcc/i386-pc-solaris2.10/3.4.6/specs から spec を読み込み中
コンフィグオプション: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --enable-shared --enable-languages=c,c++,f77
スレッドモデル: posix
gcc バージョン 3.4.6

参考情報
http://groups.google.com/group/memcached/browse_thread/thread/a8f346a0084d9828/11428cd7bb11a374?lnk=gst#11428cd7bb11a374

情報を教えてくれたtmaesaka氏に感謝(`・ω・)