Hi,

At Fri, 27 Apr 2007 02:30:31 +0900,
Michal Suchanek wrote in [ruby-core:11039]:
> As it turns out, ruby and miniruby only differ in the way
> libruby-static is linked in. For miniruby it is linked directly by
> full name, for ruby it is looked up with -l option.
> So linking in another file would not fix the extensions for miniruby
> nor prevent miniruby from loading potetntially broken and incompatible
> extensions that are already installed. I think the object is present
> in libruby anyway.

Miniruby linked against dmydln.o is prevented from loading
extensions at all.

Anyway, isn't it solved by clearing default LOAD_PATH?


Index: runruby.rb =================================================================== --- runruby.rb (revision 12282) +++ runruby.rb (working copy) @@ -48,5 +48,7 @@ ENV["RUBY"] = File.expand_path(ruby) ENV["PATH"] = [abs_archdir, ENV["PATH"]].compact.join(File::PATH_SEPARATOR) -if !pure and e = ENV["RUBYLIB"] +if pure + libs << File.expand_path("ext", srcdir) << "-" +elsif e = ENV["RUBYLIB"] libs |= e.split(File::PATH_SEPARATOR) end @@ -62,13 +64,7 @@ if File.file?(libruby_so) end end -begin - open("puretest.rb", IO::EXCL|IO::CREAT|IO::WRONLY) do |f| - f.puts('$LOAD_PATH.replace(ENV["RUBYLIB"].split(File::PATH_SEPARATOR))') - end -rescue Errno::EEXIST -end cmd = [ruby] -cmd << "-rpuretest.rb" if pure +cmd << "-rpurelib.rb" if pure cmd.concat(ARGV) cmd.unshift(*debugger) if debugger Index: ext/extmk.rb =================================================================== --- ext/extmk.rb (revision 12282) +++ ext/extmk.rb (working copy) @@ -325,6 +325,9 @@ else end $ruby << " -I'$(topdir)' -I'$(hdrdir)/lib'" -$ruby << " -I'#{$extout}'" if $extout +$ruby << " -I'$(extout)/$(arch)' -I'$(extout)/common'" if $extout +$ruby << " -I'$(hdrdir)/ext' -rpurelib.rb" $config_h = '$(topdir)/config.h' +ENV["RUBYLIB"] = "-" +ENV["RUBYOPT"] = "-rpurelib.rb" MTIMES = [__FILE__, 'rbconfig.rb', srcdir+'/lib/mkmf.rb'].collect {|f| File.mtime(f)} Index: ext/purelib.rb =================================================================== --- ext/purelib.rb (revision 0) +++ ext/purelib.rb (revision 0) @@ -0,0 +1,3 @@ +if nul = $:.index("-") + $:[nul..-1] = ["."] +end Property changes on: ext/purelib.rb ___________________________________________________________________ Name: svn:eol-style + LF Index: lib/mkmf.rb =================================================================== --- lib/mkmf.rb (revision 12282) +++ lib/mkmf.rb (working copy) @@ -1053,4 +1053,7 @@ hdrdir = #{$extmk ? CONFIG["hdrdir"].quo VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])} } + if $extmk + mk << "RUBYLIB = -\nRUBYOPT = -rpurelib.rb\n" + end if destdir = CONFIG["prefix"][$dest_prefix_pattern, 1] mk << "\nDESTDIR = #{destdir}\n"
-- Nobu Nakada