aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rwxr-xr-xwin32/mkexports.rb5
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 552e9a421c..8720d74c69 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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