diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rwxr-xr-x | win32/mkexports.rb | 5 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Wed Feb 4 11:45:06 2009 NAKAMURA Usaku <usa@ruby-lang.org> + + * win32/mkexports.rb: shouldn't export DllMain. + reported at http://pc11.2ch.net/test/read.cgi/tech/1233686068/21 + Wed Feb 4 10:12:05 2009 Yukihiro Matsumoto <matz@ruby-lang.org> * missing/vsnprintf.c (BSD_vfprintf): should support 't' format diff --git a/win32/mkexports.rb b/win32/mkexports.rb index 22bb2a1936..536ee9735a 100755 --- a/win32/mkexports.rb +++ b/win32/mkexports.rb @@ -110,7 +110,7 @@ class Exports::Mswin < Exports next unless l.sub!(/.*?\s(\(\)\s+)?External\s+\|\s+/, '') is_data = !$1 if noprefix or /^[@_]/ =~ l - next if /(?!^)@.*@/ =~ l || /@[[:xdigit:]]{16}$/ =~ l + next if /(?!^)@.*@/ =~ l || /@[[:xdigit:]]{16}$/ =~ l || /^_DllMain@/ =~ l l.sub!(/^[@_]/, '') if /@\d+$/ !~ l elsif !l.sub!(/^(\S+) \([^@?\`\']*\)$/, '\1') next @@ -143,7 +143,8 @@ class Exports::Cygwin < Exports def each_export(objs) objdump(objs) do |l| - yield $2, !$1 if /\s(?:(T)|[[:upper:]])\s_((?!Init_).*)$/ =~ l + next if /@.*@/ =~ l + yield $2, !$1 if /\s(?:(T)|[[:upper:]])\s_((?!Init_|DllMain@).*)$/ =~ l end end end |