aboutsummaryrefslogtreecommitdiffstats
path: root/win32/mkexports.rb
diff options
context:
space:
mode:
Diffstat (limited to 'win32/mkexports.rb')
-rwxr-xr-xwin32/mkexports.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/win32/mkexports.rb b/win32/mkexports.rb
index e96f9339d0..86ba979ddf 100755
--- a/win32/mkexports.rb
+++ b/win32/mkexports.rb
@@ -149,7 +149,7 @@ class Exports::Cygwin < Exports
end
end
-class Exports::Mingw < Exports::Cygwin
+class Exports::Mingw32 < Exports::Cygwin
def each_export(objs)
super
yield "strcasecmp", "_stricmp"
@@ -157,6 +157,17 @@ class Exports::Mingw < Exports::Cygwin
end
end
+class Exports::Mingw64 < Exports::Cygwin
+ def each_export(objs)
+ objdump(objs) do |l|
+ next if /@.*@/ =~ l
+ yield $2, !$1 if /\s(?:(T)|[[:upper:]])\s_?((?!Init_|.*_threadptr_|DllMain[@\n]).*)$/ =~ l
+ end
+ yield "strcasecmp", "_stricmp"
+ yield "strncasecmp", "_strnicmp"
+ end
+end
+
END {
exports = Exports.extract(ARGV)
Exports.output {|f| f.puts(*exports)}