[#11073] segfault printing instruction sequence for iterator — <noreply@...>

Bugs item #10527, was opened at 2007-05-02 14:42

14 messages 2007/05/02
[#11142] Re: [ ruby-Bugs-10527 ] segfault printing instruction sequence for iterator — Nobuyoshi Nakada <nobu@...> 2007/05/10

Hi,

[#11188] Re: [ ruby-Bugs-10527 ] segfault printing instruction sequence for iterator — Paul Brannan <pbrannan@...> 2007/05/16

On Thu, May 10, 2007 at 04:51:18PM +0900, Nobuyoshi Nakada wrote:

[#11234] Planning to release 1.8.6 errata — Urabe Shyouhei <shyouhei@...>

Hi all.

17 messages 2007/05/25

Re: [ ruby-Bugs-10303 ] miniruby loads extensions from already installed ruby

From: Nobuyoshi Nakada <nobu@...>
Date: 2007-05-15 15:27:04 UTC
List: ruby-core #11168
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

In This Thread