なかだです。

On Tue, 4 Jul 2000 11:32:49 +0900
KIMURA Koichi <kimura / sqa.canon.co.jp> 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るくらいがちょうどいいかも;-)" 伸悦