[groonga-dev,01441] groonga-3.0.3がmacのclangでビルドできません

Back to archive index

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*****)



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