From: Masao Kanemitsu Date: 1997-04-09T17:39:31+09:00 Subject: [ruby-list:2713] Re: tk etc. In message <199704090735.QAA11322@castanet.caelum.co.jp> "[ruby-list:2709] Re: tk etc." "matz@caelum.co.jp (Yukihiro Matsumoto)" wrote: > |何かやってみるといいようなこと、ありませんか。結果を送ります。 > > というか,あのメッセージを見る限りruby側のしかもかなり本質的 > なバグです.実行中に構文木を壊しているように見えます. ときどき、普通の構文に対してエラーを出しているように見える ところですね。再現性なく出る場合もあります。ただし、tkがらみのみです。 > 直接金光さんのマシンでデバッガでも動かさない限りは直せそうに > 無いのですが….どうしたもんだか. gdbはありますが、何かやれそうなことないですか。 > |ないので実害はあまりないのですが、configureしてmake > |すると、以下の部分で止まります。 > > むむむ,isspaceの方は分かりました.ruby.cに > > #include 通りました。(_ _) > S_ISREGの方は > > #ifndef S_ISREG > # define S_ISREG(m) ((m & S_IFMT) == S_IFREG) > #endif > > でなおるのかもしれません. file.cで使っていたので、とりあえずそこに入れると 通りました。(defines.hの方がいいのかも) その後、extをコンパイルに行きますが ld -o tkutil.so tkutil.o ld: Undefined: cObject rb_define_class rb_define_module rb_define_singleton_method rb_intern rb_scan_args iterator_p rb_eval_cmd rb_yield_0 obj_alloc rb_funcall2 *** Exit 1 のようになるので、静的リンク用にext/Setupを書き変えるとうまく いきましたが、一箇所だけ compiling kconv cc -I../.. -g -c kconv.c ccom: Error: kconv.c, line 366: function declaration in bad context static int fold(register int c2,register int c1); ----------------------------------------------------^ *** Exit 1 のように文句をいわれます。とりあえずrubyはできているのでmake test すると、 % make test stack rlimit exceeded, pid 3970, proc ruby stack rlimit exceeded, pid 3970, proc ruby sendsig: can't grow stack, pid 3970, proc ruby stack rlimit exceeded, pid 3970, proc ruby sh: 3970 Illegal instruction - core dumped test failed こ、これはもうあきらめた方がいいかも。 > |OSは、mips-bsd(NEWS-OS Release 4.1R)です。 > > 4.2RにはS_ISREGあるんだけどなあ. 古すぎなんでしょう。 ------------------------------------------------------------------ Masao Kanemitsu, Ascii corp. Book Publishing 5 Tel: 03-5351-8123 4-33-10 Yoyogi Shibuya-ku, Tokyo, 151-24 Japan Fax: 03-5351-7827