[groonga-dev,01358] Re: mysql 5.6.11でmroonga 3.03をビルドするとエラー

Back to archive index

HAYASHI Kentaro hayas****@clear*****
2013年 5月 2日 (木) 19:02:15 JST


林です。

手元で再現できていたCentOS 5 i386な環境でも明示的にディレクトリを作ってあげると
ビルドが通るようになったことを確認しました。

こちらでなかなか再現していなかったのは、/usr/lib/mysql/pluginディレクトリが残ったままに
なっていたっぽいですね。見落としていました。

mysql56-serverをインストールするとビルドできるようになるというのも、
/usr/lib/mysq/plugin/以下にsoがインストールされるからということで説明がつきます。

ありがとうございます。
助かりました。

このへんを踏まえた対処を入れておきます。

On Thu, 2 May 2013 18:14:36 +0900
"yoku ts." <yoku0****@gmail*****> wrote:

> 何度も何度もすいません。。
> 
> 何が起きているのか判りませんが、i686のCentOS6.3では/usr/lib/mysql/pluginディレクトリを作ってやったらmakeが通るようになりました。
> 
> # make
> make  all-recursive
> ..
> libtool: link: g++  -fPIC -DPIC -shared -nostdlib
> /usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crti.o
> /usr/lib/gcc/i686-redhat-linux/4.4.7/crtbeginS.o
> .libs/ha_mroonga_la-mrn_sys.o .libs/ha_mroonga_la-ha_mroonga.o
> .libs/ha_mroonga_la-mrn_table.o  -Wl,--whole-archive
> ./lib/.libs/libmrn_no_mysql.a ./lib/.libs/libmrn_need_mysql.a
> -Wl,--no-whole-archive  -lgroonga -L/usr/lib/mysql/plugin/..
> -lmysqlservices -L/usr/lib/gcc/i686-redhat-linux/4.4.7
> -L/usr/lib/gcc/i686-redhat-linux/4.4.7/../../.. -lstdc++ -lm -lc
> -lgcc_s /usr/lib/gcc/i686-redhat-linux/4.4.7/crtendS.o
> /usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crtn.o  -O2
> -Wl,-soname -Wl,ha_mroonga.so.0 -o .libs/ha_mroonga.so.0.0.0
> /usr/bin/ld: cannot find -lmysqlservices
> collect2: ld returned 1 exit status
> make[2]: *** [ha_mroonga.la] Error 1
> make[2]: Leaving directory `/root/mroonga-3.03'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/root/mroonga-3.03'
> make: *** [all] Error 2
> 
> 
> # mkdir /usr/lib/mysql/plugin
> # make clean
> # make
> make  all-recursive
> ..
> libtool: link: ranlib .libs/ha_groonga.a
> libtool: link: rm -fr .libs/ha_groonga.lax
> libtool: link: ( cd ".libs" && rm -f "ha_groonga.la" && ln -s
> "../ha_groonga.la" "ha_groonga.la" )
> make[2]: Leaving directory `/root/mroonga-3.03'
> make[1]: Leaving directory `/root/mroonga-3.03'
> 
> 
> 
> # rmdir /usr/lib/mysql/plugin
> # make clean
> # make
> ..
> make  all-recursive
> ..
> libtool: link: g++  -fPIC -DPIC -shared -nostdlib
> /usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crti.o
> /usr/lib/gcc/i686-redhat-linux/4.4.7/crtbeginS.o
> .libs/ha_mroonga_la-mrn_sys.o .libs/ha_mroonga_la-ha_mroonga.o
> .libs/ha_mroonga_la-mrn_table.o  -Wl,--whole-archive
> ./lib/.libs/libmrn_no_mysql.a ./lib/.libs/libmrn_need_mysql.a
> -Wl,--no-whole-archive  -lgroonga -L/usr/lib/mysql/plugin/..
> -lmysqlservices -L/usr/lib/gcc/i686-redhat-linux/4.4.7
> -L/usr/lib/gcc/i686-redhat-linux/4.4.7/../../.. -lstdc++ -lm -lc
> -lgcc_s /usr/lib/gcc/i686-redhat-linux/4.4.7/crtendS.o
> /usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crtn.o  -O2
> -Wl,-soname -Wl,ha_mroonga.so.0 -o .libs/ha_mroonga.so.0.0.0
> /usr/bin/ld: cannot find -lmysqlservices
> collect2: ld returned 1 exit status
> make[2]: *** [ha_mroonga.la] Error 1
> make[2]: Leaving directory `/root/mroonga-3.03'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/root/mroonga-3.03'
> make: *** [all] Error 2
> 
> なんでしょうね。。
> お知らせまで。
> 
> 
> yoku
> 
> 2013年4月30日 14:26 yoku ts. <yoku0****@gmail*****>:
> > たびたびすいません。
> >
> > x86_64版も/usrにMySQLを入れると/usr/lib64/mysqlの下にlibmysqlservices.aが行くっぽいので、
> > mysql_configのバグな気がしてきました。
> >
> > [yoku0825 @ personal wing]$ ll 5.6.11_usr_x86/lib64/mysql/
> > 合計 18996
> > -rw-r--r-- 1 yoku0825 yoku0825 19432624  4月 30 14:07 2013 libmysqlclient.a
> > lrwxrwxrwx 1 yoku0825 yoku0825       16  4月 30 14:07 2013
> > libmysqlclient_r.a -> libmysqlclient.a
> > -rw-r--r-- 1 yoku0825 yoku0825    14814  4月 30 14:07 2013 libmysqlservices.a
> >
> >
> > yoku ts.
> >
> > 2013年4月30日 14:24 yoku ts. <yoku0****@gmail*****>:
> >> こんにちは、yokuといいます。
> >>
> >> OracleビルドのMySQL-Devel 5.6.11のx86_64版とi686のmysql_configの動きを眺めてみたのですが、
> >> なんかちょっと動きが違うみたいです。
> >> (rpmファイルをrpm2cpioでほどいたmysql_configの動作です)
> >>
> >>
> >> [yoku0825 @ personal wing]$ pwd
> >> /home/yoku0825/wing
> >>
> >> [yoku0825 @ personal wing]$ ./5.6.11_usr_i686/bin/mysql_config
> >> Usage: ./5.6.11_usr_i686/bin/mysql_config [OPTIONS]
> >> Options:
> >>         --cflags
> >> [-I/home/yoku0825/wing/5.6.11_usr_i686/include/mysql -g -pipe
> >> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> >> --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables  -fPIC -g
> >> -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing
> >> -DMY_PTHREAD_FASTMUTEX=1]
> >>         --cxxflags
> >> [-I/home/yoku0825/wing/5.6.11_usr_i686/include/mysql -g -pipe
> >> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> >> --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables
> >> -felide-constructors  -fPIC -Wno-unused-parameter -g -fabi-version=2
> >> -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
> >>         --include        [-I/home/yoku0825/wing/5.6.11_usr_i686/include/mysql]
> >>         --libs
> >> [-L/home/yoku0825/wing/5.6.11_usr_i686/lib/mysql -lmysqlclient
> >> -lpthread -lm -lrt -ldl]
> >>         --libs_r
> >> [-L/home/yoku0825/wing/5.6.11_usr_i686/lib/mysql -lmysqlclient_r
> >> -lpthread -lm -lrt -ldl]
> >>         --plugindir      [/usr/lib/mysql/plugin]
> >>         --socket         [/var/lib/mysql/mysql.sock]
> >>         --port           [0]
> >>         --version        [5.6.11]
> >>         --libmysqld-libs
> >> [-L/home/yoku0825/wing/5.6.11_usr_i686/lib/mysql -lmysqld -lpthread
> >> -lm -lrt -lcrypt -ldl -laio]
> >>         --variable=VAR   VAR is one of:
> >>                 pkgincludedir
> >> [/home/yoku0825/wing/5.6.11_usr_i686/include/mysql]
> >>                 pkglibdir     [/home/yoku0825/wing/5.6.11_usr_i686/lib/mysql]
> >>                 plugindir     [/usr/lib/mysql/plugin]
> >>
> >> [yoku0825 @ personal wing]$ ./5.6.11_usr_x86/bin/mysql_config
> >> Usage: ./5.6.11_usr_x86/bin/mysql_config [OPTIONS]
> >> Options:
> >>         --cflags
> >> [-I/home/yoku0825/wing/5.6.11_usr_x86/include/mysql -g -pipe
> >> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> >> --param=ssp-buffer-size=4 -m64 -fPIC -g -fabi-version=2
> >> -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
> >>         --cxxflags
> >> [-I/home/yoku0825/wing/5.6.11_usr_x86/include/mysql -g -pipe
> >> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> >> --param=ssp-buffer-size=4 -m64 -felide-constructors  -fPIC
> >> -Wno-unused-parameter -g -fabi-version=2 -fno-omit-frame-pointer
> >> -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
> >>         --include        [-I/home/yoku0825/wing/5.6.11_usr_x86/include/mysql]
> >>         --libs           [-L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl]
> >>         --libs_r         [-L/usr/lib64 -lmysqlclient_r -lpthread -lm -lrt -ldl]
> >>         --plugindir      [/usr/lib64/mysql/plugin]
> >>         --socket         [/var/lib/mysql/mysql.sock]
> >>         --port           [0]
> >>         --version        [5.6.11]
> >>         --libmysqld-libs [-L/usr/lib64 -lmysqld -lpthread -lm -lrt
> >> -lcrypt -ldl -laio]
> >>         --variable=VAR   VAR is one of:
> >>                 pkgincludedir [/home/yoku0825/wing/5.6.11_usr_x86/include/mysql]
> >>                 pkglibdir     [/usr/lib64]
> >>                 plugindir     [/usr/lib64/mysql/plugin]
> >>
> >>
> >> --libs, --libs_r, --libmysqld-libs,
> >> --variable=pkglibdirで戻す値が、i686版はmysql_configから見た../lib/mysqlですが、
> >> x86_64は/usr/lib64で決め打たれているぽいです。
> >> /usrにMySQLが入っていたとして、/usr/lib/mysqlと/usr/lib64なのでちょっと気持ち悪いですね。。
> >>
> >> 直接影響しているかどうかは判りませんが、お知らせまで。。
> >>
> >>
> >> yoku ts.
> >>
> >> 2013年4月30日 14:05 WING☆ <wings****@wing-*****>:
> >>> 林様
> >>>
> >>> いつもお世話になっております。
> >>> WING☆です。
> >>>
> >>> http://sourceforge.jp/projects/groonga/lists/archive/dev/2013-March/001240.html
> >>> こちらにも書きましたが、mysql公式rpmでもこのようなことがありましたので、
> >>> ヒントになればと思っています。
> >>>
> >>> 一応ビルドできないわけではないし、自前でrpm作る人も数が少ない
> >>> と思いますので大きな問題ではないと思いますので、お時間のある
> >>> 時にでも調査頂けると幸いです。
> >>>
> >>> もしも、私の環境が悪いという可能性もありますので、必要な情報が
> >>> ありましたらご指示下さい。
> >>>
> >>> お手数をおかけしますが、宜しくお願い致します。
> >>>
> >>>
> >>>
> >>>
> >>> (2013/04/30 13:07), HAYASHI Kentaro wrote:
> >>>>
> >>>> 林です。
> >>>>
> >>>> お世話になっております。
> >>>>
> >>>> リリース用のパッケージはchroot環境でビルドするようになっているので
> >>>> そちらのビルドログ(CentOS 5/i386)の該当箇所周辺を漁ってみました。
> >>>>
> >>>> libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crti.o /usr/lib/gcc/i386-redhat-linux/4.1.2/crtbeginS.o  .libs/ha_mroonga_la-mrn_sys.o .libs/ha_mroonga_la-ha_mroonga.o .libs/ha_mroonga_la-mrn_table.o  -Wl,--whole-archive ./lib/.libs/libmrn_no_mysql.a ./lib/.libs/libmrn_need_mysql.a -Wl,--no-whole-archive  -lgroonga -L/usr/lib/mysql/plugin/.. -lmysqlservices -L/usr/lib/gcc/i386-redhat-linux/4.1.2 -L/usr/lib/gcc/i386-redhat-linux/4.1.2/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/i386-redhat-linux/4.1.2/crtendS.o /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crtn.o  -m32 -O2 -m32 -march=i386 -mtune=generic   -Wl,-soname -Wl,ha_mroonga.so.0 -o .libs/ha_mroonga.so.0.0.0
> >>>> libtool: link: (cd ".libs" && rm -f "ha_mroonga.so.0" && ln -s "ha_mroonga.so.0.0.0" "ha_mroonga.so.0")
> >>>> libtool: link: (cd ".libs" && rm -f "ha_mroonga.so" && ln -s "ha_mroonga.so.0.0.0" "ha_mroonga.so")
> >>>> libtool: link: ( cd ".libs" && rm -f "ha_mroonga.la" && ln -s "../ha_mroonga.la" "ha_mroonga.la" )
> >>>> mv -f .deps/ha_groonga_la-ha_mroonga.Tpo .deps/ha_groonga_la-ha_mroonga.Plo
> >>>>
> >>>> ぱっと見には違いがないように見えますねぇ。
> >>>> -marchが違うくらいですし。。。
> >>>>
> >>>> bash-3.2# rpm -qa|grep -i mysql
> >>>> MySQL-devel-5.6.11-1.rhel5
> >>>> groonga-normalizer-mysql-1.0.3-0
> >>>>
> >>>> 時間のあるときにでも、他の環境で追試してみたいと思います。
> >>>>
> >>>>
> >>>> On Sun, 28 Apr 2013 03:34:12 +0900
> >>>> WING☆ <wings****@wing-*****> wrote:
> >>>>
> >>>>> WING☆です。
> >>>>> いつも大変お世話になっております。
> >>>>>
> >>>>> すみません。
> >>>>> 自己レスです。
> >>>>>
> >>>>> 結論から言いますと解決しました。
> >>>>> 原因は、
> >>>>> [groonga-dev,01240] Re: mysql 5.6.10でmroongaをビルドするとエラー
> >>>>> と同じでした。
> >>>>> mysql56-serverをインストールした状態であればOKというもの。
> >>>>> しかし、不思議なことに遭遇しました。
> >>>>>
> >>>>> serverパッケージをインストールしない状態でmroongaをビルドしたところ、
> >>>>> CentOS 5 i386   → ×
> >>>>> CentOS 5 x86_64 → ×
> >>>>> CentOS 6 i386   → ○
> >>>>> CentOS 6 x86_64 → ×
> >>>>> となり、6の32bit版だけビルドが正常に出来ており、他がダメ。
> >>>>> その後、3つの環境にserverパッケージを入れてビルドしたところ3つとも
> >>>>> OKでした。
> >>>>>
> >>>>> このあたり、お時間のある時にでも解析して頂けると幸いです。
> >>>>>
> >>>>> どうぞ、宜しくお願い致します。
> >>>>>
> >>>>> # 公式アナウンス後、私もアナウンスしたいと思います。
> >>>>> # それまで動作チェックを…
> >>>>>
> >>>>>
> >>>>>
> >>>>> (2013/04/28 0:56), WING☆ wrote:
> >>>>>> WING☆です。
> >>>>>> いつも大変お世話になっております。
> >>>>>>
> >>>>>> まだ新しいバージョンのアナウンスがされていませんので、
> >>>>>> MLに投げるのを躊躇してしまいましたが、投げることにしました。
> >>>>>> (申し訳ありません。)
> >>>>>>
> >>>>>> 以前、
> >>>>>> [groonga-dev,01227] mysql 5.6.10でmroongaをビルドするとエラー
> >>>>>> では、解決したのですが、今回またもやエラーは発生しました。
> >>>>>>
> >>>>>> 今回ビルドしたのは、まだアナウンス前の最新3.03を試していて
> >>>>>> 発生したものです。
> >>>>>> groongaも同様に3.0.3やnormalizerの1.0.3を使用しておりますが、
> >>>>>> こちらは問題ありませんでした。
> >>>>>>
> >>>>>> ■ 環境
> >>>>>> ・mroonga-3.03(ANN前…)をビルドしようとしてエラー
> >>>>>> ・CentOS 5(i386/x86_64)
> >>>>>> ・groonga-3.0.3(ANN前…)
> >>>>>> ・groonga-normalizer-mysql-1.0.3(ANN前…)
> >>>>>> ・wingリポジトリのmysql56-5.6.11
> >>>>>> ---
> >>>>>> [root @ i386-el5 ~]# rpm -qa|grep groonga
> >>>>>> groonga-libs-3.0.3-1.el5_11.wing
> >>>>>> groonga-normalizer-mysql-1.0.3-1.el5_2.wing
> >>>>>> groonga-normalizer-mysql-devel-1.0.3-1.el5_2.wing
> >>>>>> groonga-plugin-suggest-3.0.3-1.el5_11.wing
> >>>>>> groonga-3.0.3-1.el5_11.wing
> >>>>>> groonga-devel-3.0.3-1.el5_11.wing
> >>>>>> ---
> >>>>>> [root @ i386-el5 ~]# ls /usr/lib/mysql/libmysqlservices.a
> >>>>>> /usr/lib/mysql/libmysqlservices.a
> >>>>>> ---
> >>>>>> libtool: link: g++  -fPIC -DPIC -shared -nostdlib
> >>>>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crti.o
> >>>>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/crtbeginS.o
> >>>>>> .libs/ha_mroonga_la-mrn_sys.o .libs/ha_mroonga_la-ha_mroonga.o
> >>>>>> .libs/ha_mroonga_la-mrn_table.o  -Wl,--whole-archive
> >>>>>> ./lib/.libs/libmrn_no_mysql.a ./lib/.libs/libmrn_need_mysql.a
> >>>>>> -Wl,--no-whole-archive  -lgroonga -L/usr/lib/mysql/plugin/..
> >>>>>> -lmysqlservices -L/usr/lib/gcc/i386-redhat-linux/4.1.2
> >>>>>> -L/usr/lib/gcc/i386-redhat-linux/4.1.2/../../.. -lstdc++ -lm -lc -lgcc_s
> >>>>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/crtendS.o
> >>>>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crtn.o  -m32 -O2 -m32
> >>>>>> -march=i686 -mtune=generic   -Wl,-soname -Wl,ha_mroonga.so.0 -o
> >>>>>> .libs/ha_mroonga.so.0.0.0
> >>>>>> /usr/bin/ld: cannot find -lmysqlservices
> >>>>>> collect2: ld returned 1 exit status
> >>>>>> make[2]: *** [ha_mroonga.la] エラー 1
> >>>>>> make[2]: ディレクトリ `/usr/src/redhat/BUILD/mroonga-3.03' から出ます
> >>>>>> make[1]: *** [all-recursive] エラー 1
> >>>>>> make[1]: ディレクトリ `/usr/src/redhat/BUILD/mroonga-3.03' から出ます
> >>>>>> make: *** [all] エラー 2
> >>>>>> ---
> >>>>>>
> >>>>>> また、不思議なのですが、公式のMySQL-devel-5.6.11-1.rhel5を
> >>>>>> インストールしてビルドしようとしても同様のエラーになって
> >>>>>> しまった点です。
> >>>>>>
> >>>>>> mroonga公式リポジトリにはビルド済みrpmがあることから、私の
> >>>>>> 環境が悪いのかと思いますが、インストール漏れやお気づきの点
> >>>>>> などがございましたら、ご指摘いただけますでしょうか。
> >>>>>>
> >>>>>> まだ、アナウンス前の新しいバージョンで申し訳ありませんが、
> >>>>>> 宜しくお願い致します。
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> ━━━━━━━━━━━━………‥‥‥・・・
> >>>>> WING☆
> >>>>> http://wingse.blog57.fc2.com/
> >>>>> http://sourceforge.jp/projects/wing-repo/
> >>>>> twitter:wingstars555
> >>>>> Facebook:http://facebook.com/ason.fukui.5
> >>>>> ━━━━━━━━━━━━……‥‥・・
> >>>>>
> >>>>> _______________________________________________
> >>>>> groonga-dev mailing list
> >>>>> groon****@lists*****
> >>>>> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
> >>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> ━━━━━━━━━━━━………‥‥‥・・・
> >>> WING☆
> >>> http://wingse.blog57.fc2.com/
> >>> http://sourceforge.jp/projects/wing-repo/
> >>> twitter:wingstars555
> >>> Facebook:http://facebook.com/ason.fukui.5
> >>> ━━━━━━━━━━━━……‥‥・・
> >>>
> >>> _______________________________________________
> >>> groonga-dev mailing list
> >>> groon****@lists*****
> >>> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev


-- 
HAYASHI Kentaro <hayas****@clear*****>




groonga-dev メーリングリストの案内
Back to archive index