diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-04-17 04:11:17 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-04-17 04:11:17 +0000 |
commit | dad31f6e5047272cea5a65c764281bcaa7284131 (patch) | |
tree | d0a8caf8138c0d965235a915f9d7ee2bbd0e095b /ext/-test-/win32/dln | |
parent | 6655667d738d59cc824b264eef4587fe9700af15 (diff) |
* dln.c (rb_w32_check_imported): skip ordinal entries. based on a
patch by phasis68 (Heesob Park) at [ruby-core:44381].
[ruby-core:44371][Bug #6303]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/-test-/win32/dln')
-rw-r--r-- | ext/-test-/win32/dln/dlntest.c | 17 | ||||
-rw-r--r-- | ext/-test-/win32/dln/extconf.rb | 28 | ||||
-rw-r--r-- | ext/-test-/win32/dln/libdlntest.c | 4 | ||||
-rw-r--r-- | ext/-test-/win32/dln/libdlntest.def | 2 |
4 files changed, 51 insertions, 0 deletions
diff --git a/ext/-test-/win32/dln/dlntest.c b/ext/-test-/win32/dln/dlntest.c new file mode 100644 index 0000000000..3e6037ac07 --- /dev/null +++ b/ext/-test-/win32/dln/dlntest.c @@ -0,0 +1,17 @@ +#include <ruby.h> + +extern __declspec(dllimport) void dlntest_ordinal(void); + +static VALUE +dln_dlntest(VALUE self) +{ + dlntest_ordinal(); + return self; +} + +void +Init_dln(void) +{ + VALUE m = rb_define_module_under(rb_define_module("Bug"), "Win32"); + rb_define_module_function(m, "dlntest", dln_dlntest, 0); +} diff --git a/ext/-test-/win32/dln/extconf.rb b/ext/-test-/win32/dln/extconf.rb new file mode 100644 index 0000000000..e7fbd35405 --- /dev/null +++ b/ext/-test-/win32/dln/extconf.rb @@ -0,0 +1,28 @@ +if /mswin|mingw/ =~ RUBY_PLATFORM + $objs = ["dlntest.o"] + + target_prefix = "-test-/win32/" + create_makefile(target_prefix+"dln") + m = File.read("Makefile") + m.sub!(/^OBJS =.*/) {$&+" dlntest.#{$LIBEXT}"} + open("Makefile", "wb") do |mf| + mf.puts m, "\n" + sodir = $extout ? "$(RUBYARCHDIR)/" : '' + mf.print "#{sodir}$(DLLIB): dlntest.#{$LIBEXT}" + mf.puts + mf.puts "dlntest.#{$LIBEXT}: $(topdir)/dlntest.dll" + mf.puts + mf.puts depend_rules("$(topdir)/dlntest.dll: libdlntest.o libdlntest.def") + mf.puts "\t$(ECHO) linking shared-object $(@F)\n" + mf.print "\t-$(Q)$(RM) $@\n" + mf.print "\t-$(Q)$(MAKEDIRS) $(@D)\n" if $extout + link_so = LINK_SO.gsub(/^/, "\t$(Q) ") + link_so.sub!(/\$\(LOCAL_LIBS\)/, '') + link_so.gsub!(/-\$\(arch\)/, '') + link_so.gsub!(/:.so=/, ':.dll=') + link_so.sub!(/\$\(OBJS\)/, "libdlntest.#{$OBJEXT}") + link_so.sub!(/\$\(DEFFILE\)/, "$(srcdir)/libdlntest.def") + mf.puts link_so + mf.puts + end +end diff --git a/ext/-test-/win32/dln/libdlntest.c b/ext/-test-/win32/dln/libdlntest.c new file mode 100644 index 0000000000..040ae8125d --- /dev/null +++ b/ext/-test-/win32/dln/libdlntest.c @@ -0,0 +1,4 @@ +extern __declspec(dllexport) void +dlntest_ordinal(void) +{ +} diff --git a/ext/-test-/win32/dln/libdlntest.def b/ext/-test-/win32/dln/libdlntest.def new file mode 100644 index 0000000000..85bc9c7a55 --- /dev/null +++ b/ext/-test-/win32/dln/libdlntest.def @@ -0,0 +1,2 @@ +EXPORTS +dlntest_ordinal @1 NONAME |