« 北陸ラーメン博(第三回) 2008/10/12~13 | トップページ | 北陸ラーメン博(第三回) 2008/10/12~13 当日の様子 »

squid-3.0.STABLE9

 プロキシー機能を提供するソフトウェアの一つに「squid」があります。現時点ではsquid-2.xと、squid-3.xのリリースが続いています。

 さて、新機能を多く搭載したsquid-3.xは先日、squid-3.0.STABLE9がリリースされました。もちろん、Solaris10でも用いることができますが、makeに際して少し工夫が必要です。

 特に以下の条件でmakeを予定している場合、参考になるかと思います。

 ・Solaris10にて、squid-3.0系を64bitでmakeしたい。
 ・gccはSolaris10に添付のものを、そのまま利用したい。

 ①環境変数の設定

 64bitでmakeを行うため、CFLAGS、LDFLAGSに"-m64"が含まれるよう、調整しておいてください。

 ②configureの準備

 そのままconfigureを行いmakeを進めると、二箇所でエラーが発生します。

 (1)CXXFLAGSからSunコンパイラ用の引数が取り除かれない

 configureによって、「-xarch=generic64」が諸FLAGSに生成されます。これらはgccを利用する場合は「-m64」に置き換えられますが、現時点のconfigureではCFLAGSとLDFLAGSのみ処理されます。従って、g++が利用された時点でエラーを生じます。

 g++: language arch=generic64 not recognized
 g++: MemPool.cc: linker input file unused because linking not done
 mv: cannot access .deps/MemPool.Tpo

 この問題は、configureにおいてCXXFLAGSの引数も置き換えるように記述することで、解決します。以下を参考に、一行を書き足してください。

 CFLAGS="`echo $CFLAGS | sed -e 's/-xarch=generic64/-m64/'`"
 CXXFLAGS="`echo $CXXFLAGS | sed -e 's/-xarch=generic64/-m64/'`" (追加)
 LDFLAGS="`echo $LDFLAGS | sed -e 's/-xarch=generic64//'`"

 (2)dependency_libsにおいて-lgcc_sが利用される

 amd64のライブラリを作成する際に-lgcc_sを引数に用いるため、not foundを生じます。

 ld: fatal: library -lgcc_s: not found
 ld: warning: file /usr/sfw/lib/amd64/libstdc++.so: attempted multiple inclusion of file
 ld: fatal: File processing errors. No output written to cf_gen

 この問題は、Solaris10にインストールされているファイルを一部書き換えることで解決します。以下を参考に、一部を書き換えてください。

 ※書き換え前に、オリジナルのファイルの保存をお勧めします。

 vi /usr/sfw/lib/amd64/libstdc++.la

 旧:dependency_libs=' -L/usr/sfw/lib/amd64 -lgcc_s -lm'
 新:dependency_libs=' -L/usr/sfw/lib/amd64 -lgcc_s_amd64 -lm'

 ③configure及びmakeの実施とインストール

 ./configure --prefix=/usr/local/squid --with-large-files --enable-large-cache-files --enable-snmp

 make
 make install

 ④64bitバイナリの確認

 % ldd /usr/local/squid/sbin/squid
 libstdc++.so.6 => /usr/sfw/lib/64/libstdc++.so.6
 libgcc_s.so.1 =>  /usr/sfw/lib/64/libgcc_s.so.1
 libmd5.so.1 => /usr/lib/64/libmd5.so.1
 libresolv.so.2 => /usr/lib/64/libresolv.so.2
 libmalloc.so.1 => /usr/lib/64/libmalloc.so.1
 libsocket.so.1 => /usr/lib/64/libsocket.so.1
 libnsl.so.1 => /usr/lib/64/libnsl.so.1
 libm.so.2 => /usr/lib/64/libm.so.2
 libc.so.1 => /usr/lib/64/libc.so.1
 libmp.so.2 => /usr/lib/64/libmp.so.2
 libscf.so.1 => /usr/lib/64/libscf.so.1
 libdoor.so.1 => /usr/lib/64/libdoor.so.1
 libuutil.so.1 =>  /usr/lib/64/libuutil.so.1

 お疲れ様でした。

|

« 北陸ラーメン博(第三回) 2008/10/12~13 | トップページ | 北陸ラーメン博(第三回) 2008/10/12~13 当日の様子 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/33578/42506307

この記事へのトラックバック一覧です: squid-3.0.STABLE9:

« 北陸ラーメン博(第三回) 2008/10/12~13 | トップページ | 北陸ラーメン博(第三回) 2008/10/12~13 当日の様子 »