summaryrefslogtreecommitdiffstats
path: root/ext/extmk.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-05-03 13:19:11 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-05-03 13:19:11 +0000
commit8c4897207e590089db4b0ec08fabc6eb71c253e4 (patch)
tree1b7449c06b8a8ca3a73d629083810fb85857673d /ext/extmk.rb
parenta2f9ad923b669c53cc4b9ec2ceb40bd95267ea12 (diff)
downloadruby-8c4897207e590089db4b0ec08fabc6eb71c253e4.tar.gz
ruby-8c4897207e590089db4b0ec08fabc6eb71c253e4.tar.xz
ruby-8c4897207e590089db4b0ec08fabc6eb71c253e4.zip
* configure.in, defines.h, eval_load.c (rb_feature_p, rb_provided,
search_required, rb_require_safe), ext/extmk.rb: Fix a bug where a statically linked extension cannot be autoloaded. [ruby-dev:30023] / [ruby-dev:30239] * thread.c: added an internal class, Barrier. * yarvcore.h (struct rb_vm_struct): moved loading_table from global. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/extmk.rb')
-rw-r--r--ext/extmk.rb12
1 files changed, 6 insertions, 6 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 15d2abb60..f40bfa6ec 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -452,14 +452,14 @@ unless $extlist.empty?
src = %{\
#include "ruby.h"
-#define init(func, name) { \
- void func _((void)); \
- ruby_sourcefile = src = rb_source_filename(name); \
- func(); \
- rb_provide(src); \
+#define init(func, name) { \\
+ extern void func _((void)); \\
+ ruby_init_ext(name, func); \\
}
-void Init_ext _((void))\n{\n char *src;#$extinit}
+void ruby_init_ext _((const char *name, void (*init)(void)));
+
+void Init_ext _((void))\n{\n#$extinit}
}
if !modified?(extinit.c, MTIMES) || IO.read(extinit.c) != src
open(extinit.c, "w") {|fe| fe.print src}