[groonga-dev,02725] Re: MroongaのWindows向けバイナリのリリースについて

Back to archive index

Kouhei Sutou kou****@clear*****
2014年 8月 31日 (日) 20:01:57 JST


須藤です。

In <54018****@gmail*****>
  "[groonga-dev,02722] Re: MroongaのWindows向けバイナリのリリースについて" on Sat, 30 Aug 2014 17:21:08 +0900,
  hiroshi hatake <cosmo****@gmail*****> wrote:

>> 予想なんですが、MroongaかGroongaがやっているチェックの中で何
>> かのフラグを変更していて、それがビルドエラーの引き金になって
>> いるんではないかと思っています。で、↑のcmakeの出力を見ると
>> Mroonga/Groongaが追加でチェックしている項目を見つけることが
>> できると思っています。
> 
> VS2013でMariaDB 10.0.13バンドル版Mroonga 4.0.5を両方の場合で「cmake -G
> "Visual Studio 12"」した場合のログを取ってみました。
> 
> storage/mroongaあり
> https://dl.dropboxusercontent.com/u/36753409/VS2013-cmake-config/config-with-mroonga.log
> storage/mroongaなし
> https://dl.dropboxusercontent.com/u/36753409/VS2013-cmake-config/config-without-mroonga.log

ありがとうございます!

diffはこうだったんですが、わかりませんでした!

--- config-without-mroonga.log	2014-08-31 18:52:24.762156259 +0900
+++ config-with-mroonga.log	2014-08-31 18:52:17.878323680 +0900
@@ -40,6 +40,43 @@
 -- Looking for sched_getcpu - not found
 -- Looking for asprintf
 -- Looking for asprintf - not found
+-- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
+-- Looking for errno.h
+-- Looking for errno.h - found
+-- Looking for netinet/tcp.h
+-- Looking for netinet/tcp.h - not found
+-- Looking for signal.h
+-- Looking for signal.h - found
+-- Looking for sys/sysctl.h
+-- Looking for sys/sysctl.h - not found
+-- Looking for _strnicmp
+-- Looking for _strnicmp - found
+-- Looking for _strtoui64
+-- Looking for _strtoui64 - found
+-- Looking for close
+-- Looking for close - found
+-- Looking for mkostemp
+-- Looking for mkostemp - not found
+-- Looking for open
+-- Looking for open - found
+-- Looking for read
+-- Looking for read - found
+-- Looking for write
+-- Looking for write - found
+-- Looking for fpclassify
+-- Looking for fpclassify - found
+-- Looking for dlopen in dl
+-- Looking for dlopen in dl - not found
+-- Looking for backtrace in execinfo
+-- Looking for backtrace in execinfo - not found
+-- Looking for clock_gettime in rt
+-- Looking for clock_gettime in rt - not found
+-- Looking for winsock2.h
+-- Looking for winsock2.h - found
+-- Looking for event_init in event
+-- Looking for event_init in event - not found
+-- Looking for msgpack_version in msgpack
+-- Looking for msgpack_version in msgpack - not found
 -- Configuring OQGraph
 -- Could NOT find Boost
 -- Boost not found. OQGraph will not be compiled


> 他にも必要な情報はありますでしょうか…!

別のアプローチでもいいですか?

a. MroongaなしMariaDBで本当にstorage/connect/tabwmi.cppがビ
   ルドされているか確認する。

   storage/connect/tabwmi.cppの
     length[0] = max(length[0], len);
   の次の行に
     #error Built!
   というのを入れてビルドし、「Built!」というエラーメッセー
   ジでビルドが失敗したらMroongaなしのMariaDBでも本当にビル
   ドしている。

   → Mroongaなしのときはなにかしらの方法でmax()を定義してい
   るはず

b. MroongaなしMariaDBでmax()がどこで定義されているかを確認す
   る。

   storage/connect/tabwmi.cppの
     length[0] = max(length[0], len);
   の次の行に
     #define max(a, b) a
   というのを入れると

     warning C4005: 'max' : マクロが再定義されました。

   という警告がでて、このメッセージの周辺にどこでmax()が定義
   されていたかの情報がでるはず

   → Mroongaなしのときはどこで定義されているmax()を使ってい
   るかがわかる。それをヒントにどうしてMroongaありのときは
   max()が定義されていないのかを調べる


どうでしょうか!?


-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/>

Groongaベースの全文検索システムを総合サポート:
  http://groonga.org/ja/support/
パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
  http://www.clear-code.com/recruitment/
コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ:
  http://www.clear-code.com/services/code-reader/




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