summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-28 11:09:01 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-28 11:09:01 +0000
commit6311c5a8e40c26198e91406d9bba782796d9504f (patch)
treebf950aca7bae60a27ede6fc27838ca5bc75a09ce
parent0a9d7d358a305ce8bcce707b06b47b88edd5fe8b (diff)
merges r21795 from trunk into ruby_1_9_1.
* 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/branches/ruby_1_9_1@21845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--cygwin/GNUmakefile.in2
-rwxr-xr-xwin32/mkexports.rb2
3 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 871106c51f..70e29f2330 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Tue Jan 27 14:41:33 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * cygwin/GNUmakefile.in (RUBYDEF): needs DATA marks to export
+ non-function symbols. [ruby-core:21582]
+
+ * win32/mkexports.rb (Exports::Mingw#each_export): ditto.
+
Sun Jan 25 12:17:21 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* cygwin/GNUmakefile.in (RUBYDEF): needs read-only section too.
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"