From 9c29032c7316c1e6f876c497f0eb80b62b32ba16 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 27 Jan 2009 05:41:38 +0000 Subject: * cygwin/GNUmakefile.in (RUBYDEF): needs DATA marks to export non-function symbols. [ruby-core:21582] * win32/mkexports.rb (Exports::Mingw#each_export): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ cygwin/GNUmakefile.in | 2 +- win32/mkexports.rb | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8d4cdbe0ac..14d3c54b54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Tue Jan 27 14:41:33 2009 Nobuyoshi Nakada + + * cygwin/GNUmakefile.in (RUBYDEF): needs DATA marks to export + non-function symbols. [ruby-core:21582] + + * win32/mkexports.rb (Exports::Mingw#each_export): ditto. + Tue Jan 27 12:59:55 2009 NARUSE, Yui * ext/ripper/depend: use VPATH. diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in index 1da2bfc8cc..f12c46534c 100644 --- a/cygwin/GNUmakefile.in +++ b/cygwin/GNUmakefile.in @@ -71,7 +71,7 @@ $(RUBYDEF): $(LIBRUBY_A) $(PREP) $(RBCONFIG) ifeq (@target_os@,cygwin) @NM@ --extern --defined $(LIBRUBY_A) | \ $(MINIRUBY) -n -e 'BEGIN{puts "VERSION $(MAJOR).$(MINOR)","EXPORTS"}' \ - -e 'puts $$1 if / [A-Z] _((?!Init_).*)$$/' > $@ + -e 'if / (?:(T)|[A-Z]) _((?!Init_).*)$$/; puts "#{$$2}#{" DATA" if $$1}"; end' > $@ else $(MINIRUBY) $(srcdir)/win32/mkexports.rb -output=$@ $(LIBRUBY_A) endif diff --git a/win32/mkexports.rb b/win32/mkexports.rb index 966b602f97..4d7eeb57eb 100755 --- a/win32/mkexports.rb +++ b/win32/mkexports.rb @@ -143,7 +143,7 @@ class Exports::Mingw < Exports def each_export(objs) objdump(objs) do |l| - yield $1 if / [[:upper:]] _((?!Init_).*)$/ =~ l + yield $2, !$1 if /\s(?:(T)|[[:upper:]])\s_((?!Init_).*)$/ =~ l end yield "strcasecmp", "_stricmp" yield "strncasecmp", "_strnicmp" -- cgit v1.2.3