diff --git a/ChangeLog b/ChangeLog index e030dfa0f7..d661b1f453 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Thu Sep 23 18:54:39 2010 wanabe + + * tool/config.sub: add mingw64. + + * win32/mkexports.rb (Exports::Mingw64): added. + + * win32/mkexports.rb (Exports::Mingw32): renamed from Exports::Mingw. + Thu Sep 23 09:01:28 2010 Nobuyoshi Nakada * vm_insnhelper.c (vm_cref_push): no outer cref is needed for proc diff --git a/tool/config.sub b/tool/config.sub index a39437d015..0e1ffea92d 100755 --- a/tool/config.sub +++ b/tool/config.sub @@ -723,6 +723,10 @@ case $basic_machine in basic_machine=i386-pc os=-mingw32 ;; + mingw64) + basic_machine=i386-pc + os=-mingw64 + ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce @@ -1276,7 +1280,7 @@ case $os in | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -mingw64* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ 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)}