なかだです。 At Thu, 26 Sep 2002 00:51:59 +0900, Yukihiro Matsumoto wrote: > |このtcltklib.cに関するlogがないんですが、 > |1.6にはrb_proc_newはありません。 > | > |tcltklib.o(.text+0x1a29):tcltklib.c: undefined reference to `rb_proc_new' > > むう、修正しておきます。 Method#callでも$SAFEが独立してるのも仕様ってことでいいんでしょ うか。 > |LinuxでもDLDFLAGSに-Wl,--no-undefinedを追加すべき? > > -lrubyが必要になりますね。 LIBRUBYARGに-l$(RUBY_INSTALL_NAME)があるので大丈夫そうな。 DLDFLAGS=-Wl,-z,defs configureと指定してますが、問題はないです。
Index: tcltklib.c =================================================================== RCS file: /cvs/ruby/src/ruby/ext/tcltklib/tcltklib.c,v retrieving revision 1.6.2.3 diff -u -2 -p -r1.6.2.3 tcltklib.c --- tcltklib.c 25 Sep 2002 07:07:41 -0000 1.6.2.3 +++ tcltklib.c 25 Sep 2002 16:19:43 -0000 @@ -696,6 +696,5 @@ ip_invoke_real(argc, argv, obj) VALUE -ivq_safelevel_handler(arg, ivq) - VALUE arg; +ivq_safelevel_handler(ivq) VALUE ivq; { @@ -730,6 +729,7 @@ invoke_queue_handler(evPtr, flags) /* check safe-level */ if (rb_safe_level() != q->safe_level) { - *(q->result) = rb_funcall(rb_proc_new(ivq_safelevel_handler, - Data_Wrap_Struct(rb_cData,0,0,q)), + VALUE v = Data_Wrap_Struct(rb_cData,0,0,q); + rb_define_singleton_method(v, "handler", ivq_safelevel_handler, 0); + *(q->result) = rb_funcall(rb_funcall(v, rb_intern("method"), 1, rb_intern("handler")), rb_intern("call"), 0); } else {
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦