[groonga-dev,02661] Re: MariaDB 10.0.13バンドル版MroongaをVS2013でビルドすると失敗します

Back to archive index

Kouhei Sutou kou****@clear*****
2014年 8月 16日 (土) 19:53:13 JST


須藤です。

In <53EF3****@gmail*****>
  "[groonga-dev,02660] Re: MariaDB 10.0.13バンドル版MroongaをVS2013でビルドすると失敗します" on Sat, 16 Aug 2014 19:37:28 +0900,
  hiroshi hatake <cosmo****@gmail*****> wrote:

> source\storage\connect\tabwmi.cpp
> 
> を以下のように変更してビルドしてみました。
...
> 
> すると今度は違う箇所でのビルドエラーでやはりVS2013ではビルドが通りません。。

おぉ、connectは通るようになったんですね。

> 以下そのビルドエラーについてです。
> 
> MariaDB-with-Mroonga VS2013 build.txt:
> https://dl.dropboxusercontent.com/u/36753409/with-mariadb-10.0.13/build-fix-mroonga-4.04-with-mariadb-10.0.13-vc2013-zip-32.log

あれ、これはファイルの先頭にBOMが入っていると大丈夫になるや
つですねぇ。Visual C++はデフォルトでそのシステムのロケールか
らソースのファイルのエンコーディングを仮定してパースするんで
すけど、日本語WindowsだとCP932だと思ってビルドするんですよ。
なので、ASCII以外の文字列が入っているとこんなエラーになりま
す。

で、これは、ファイルの先頭にUTF-8のBOMを入れておくとロケール
に関係なくUTF-8としてソースをパースしてくれてビルドできるよ
うになるんです。(本来、UTF-8にはBOMは必要ないんですけどね。)

ということで、Mroongaバンドル版のMariaDBはsql\sql_locale.ccに

  https://github.com/mroonga/mroonga/blob/master/packages/source/patches/mariadb-10.0.3-windows-build.diff

っていうパッチがあたっていてBOMを追加しています。

なので、このエラーはでないと思うんですよねぇ。
なんでだろう。

> 念の為、MySQL 5.6.20 や MariaDB 10.0.13でも同じようなエラーが出ていない 
> かを見るため、
> 追ってみました。
...
> MySQL 5.6.20 VS2013 build.txt:
> https://dl.dropboxusercontent.com/u/36753409/with-mariadb-10.0.13/build-mysql-5.6.20-zip32.log
> MariDB 10.0.13 VS2013 build.txt:
> https://dl.dropboxusercontent.com/u/36753409/with-mariadb-10.0.13/build-mroonga-4.04-with-mariadb-10.0.13-vc2010-zip-32.log
> 
> 上記の修正を加えたMariaDB-with-Mroonga,MySQL,MariaDBで\sql\sql_locale.cc 
> の69行 目:
> 
> 67: /***** LOCALE BEGIN ar_AE: Arabic - United Arab Emirates *****/
> 68: static const char *my_locale_month_names_ar_AE[13] =
> 69: 
> {"يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر", 
> NullS };
> 
> でエラーになってしまっています。。。

前述の理由から、素のMySQLとMariaDBでこのビルドエラーになるの
はそうだろうなぁとは思うんですけど、Mroongaバンドル版の
MariaDBでもこれが発生する理由がわからないんですねぇ。。。


-- 
須藤 功平 <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