[ruby-list:46184] Re: ruby-chasen in 64bit machine
> PS. amd64 にして私は愛用の jvim+onew を諦めました。。なんといってもポインタを
> int に代入しているらしき警告だらけで、どう見てもそれが原因で core dump
> していたので。。(個人的には sizeof (int) != sizeof (void *) な gcc に
> 疑問を感じているけど、それだけ Cのコードが int が32ビットに依存している
> ものばかりなんでしょうね。)
> rubyや chasen周りではそういった警告は見てないと思います。
> (見逃している可能性はありますが。)
ports で ruby-chasen のビルド中に
===> Building for ja-ruby18-chasen-1.6_2
cc -I. -I. -I/usr/local/lib/ruby/1.8/amd64-freebsd7 -I. -I/usr/local/include/chasen -I/usr/local/include -fPIC -O2 -fno-strict-aliasing -pipe -fPIC -c chasen.c
chasen.c: In function 'f_chasen_sparse_tostr':
chasen.c:43: warning: cast to pointer from integer of different size
chasen.c: In function 'f_chasen_fparse_tostr':
chasen.c:57: warning: cast to pointer from integer of different size
cc -shared -o chasen.so chasen.o -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L/usr/local/lib -Wl,-R/usr/local/lib -L. -rdynamic -Wl,-soname,chasen.so -Wl,-R -Wl,/usr/local/lib -L/usr/local/lib -lruby18 -lchasen -lstdc++ -lpthread -lrt -lcrypt -lm -rpath=/usr/lib:/usr/local/lib -pthread
と、warning 出てないですかね?
chasen.h を include しておらず、(Cのデフォルトの)int の返り値を、char * に
キャストしているコードがあって、そこで出ています。
GCCのバージョンの違いかな、と思ったけど、そうでもないかな。
$ gcc --version
gcc (GCC) 4.2.1 20070719 [FreeBSD]