From: "Nobuyoshi.Nakada" Date: 2000-07-04T12:49:28+09:00 Subject: [ruby-dev:10189] Re: don't use mktemp() なかだです。 On Tue, 4 Jul 2000 11:32:49 +0900 KIMURA Koichi wrote: > >なければ dumpbin(だっけ?)で symbol を取り出して整形して > >ruby.def を作るとか. > > 一番最初に作ったときは.objファイルとdumpbinで作った記憶があります。 > ただし、全自動にはできず結局手作業が残ってたのですが。 > #何でひっかかってたんだっけかなあ dumpbin って知りませんでした。 # objdump しか使ったことなかった。勉強になるなぁ。 こういうのでどうでしょうか。出ないほうがよさそうなものまでうじゃうじゃ 出ちゃいますが。 それと mswin32 版でコケたのでパッチ(なぜか cygwin 版では無事)。 --- win32/Makefile~ Mon Jul 3 19:56:01 2000 +++ win32/Makefile Tue Jul 4 12:39:17 2000 @@ -102,6 +102,9 @@ rubymw.lib: ruby.def lib -nologo /OUT:$@ /DEF:ruby.def +ruby.def: $(LIBRUBY_A) miniruby$(EXEEXT) + dumpbin -symbols $(LIBRUBY_A) | .\miniruby$(EXEEXT) ./win32/mkexports.rb > $@ + $(LIBRUBY_SO): $(LIBRUBY_A) $(EXTOBJS) ruby.def set LIB=.\win32;$(ORGLIBPATH) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY_A) $(LIBS) -o $@ -link /DLL /DEF:ruby.def #!./miniruby -nl # win32/mkexports.rb BEGIN{ SYM={} } next if /^[0-9A-F]+ 0+ UNDEF/ next unless sub!(/.*\sExternal\s+\|\s+_/, "") next if /@/ SYM[$_.sub(/\s+$/, "")]=true END{ puts SYM.keys.sort } --- util.c~ Mon Jul 3 00:57:14 2000 +++ util.c Tue Jul 4 12:15:13 2000 @@ -40,6 +40,7 @@ rb_type(obj) if (obj == Qnil) return T_NIL; if (obj == Qfalse) return T_FALSE; if (obj == Qtrue) return T_TRUE; + if (obj == Qundef) return T_UNDEF; if (SYMBOL_P(obj)) return T_SYMBOL; return BUILTIN_TYPE(obj); -- そうだ 強気に ちょっと インチキに☆彡 中田 "Bugるくらいがちょうどいいかも;-)" 伸悦