Hiroshi Umemoto
hum****@macpo*****
2013年 5月 18日 (土) 10:46:04 JST
最新版のgroonga-3.0.3を手元のMac OS X 10.8.3でビルドするとき、
gccを使う場合は問題ないのですが、
clangを使う場合、プロセスがメモリを約1.7GBと大量に消費して
途中から処理が進まなくなってしまいます。
$ clang -v
Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
$ make
...(省略)...
CC util.lo
util.c:439:16: warning: cast from 'char *' to 'grn_id *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
source_ids = (grn_id *)GRN_BULK_HEAD(&sources);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
util.c:654:3: warning: cast from 'char *' to 'grn_geo_point *' increases required alignment from 1 to 4 [-Wcast-align]
GRN_GEO_POINT_VALUE(obj, latitude, longitude);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/groonga.h:2525:25: note: expanded from macro 'GRN_GEO_POINT_VALUE'
grn_geo_point *_val = (grn_geo_point *)GRN_BULK_HEAD(obj);\
^
util.c:708:8: warning: cast from 'char *' to 'grn_id *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
id = GRN_RECORD_VALUE(obj);
^~~~~~~~~~~~~~~~~~~~~
../include/groonga.h:2522:34: note: expanded from macro 'GRN_RECORD_VALUE'
#define GRN_RECORD_VALUE(obj) (*((grn_id *)GRN_BULK_HEAD(obj)))
^
util.c:758:7: warning: cast from 'char *' to 'grn_id *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
v = (grn_id *)GRN_BULK_HEAD(obj);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
util.c:759:8: warning: cast from 'char *' to 'grn_id *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
ve = (grn_id *)GRN_BULK_CURR(obj);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 warnings generated.
(...ここから処理が進みません)
将来的にMacの開発環境Xcodeはgccをサポートしなくなるそうなので、
手元のマシン特有なのか、clang自体の問題なのか分かりませんが、
原因が分かるとすっきりするのですが。。
梅基 宏 (hum****@macpo*****)