[#7102] Ruby 1.3.4-990611 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990611 is out, check out:

20 messages 1999/06/11

[#7223] Ruby 1.3.4-990625 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990625 is out, check out:

14 messages 1999/06/25
[#7224] -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625) — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp> 1999/06/25

早坂@会津大学です。

[ruby-dev:7238] Re: -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)

From: Katsuyuki Komatsu <komatsu@...>
Date: 1999-06-28 03:31:32 UTC
List: ruby-dev #7238
小松です。

In message of [ruby-dev:7231] Re: -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
    on 1999/6/26 00:12:20 WATANABE Hirofumi <eban@os.rim.or.jp> wrote:
|わたしも LD_PRELOAD 作戦がいいかなと思います.
|で test のときだけ使うようにする.

なるほどLD_PRELOADでしたか。
立石さん、わたなべさんありがとうございます。

ということで、[ruby-dev:7231]に[ruby-dev:7228]を
マージして以下のような感じでどうでしょう。

# PLATFORMはobsolete constantsか。

[ruby-list:15109]を見てあわててパッチを出したのが失敗でした。
申し訳ない。
しかし、sample/test.rbの変更と重なって、問題点がうまく検出
できたのはなかなかうまいタイミングというべきでしょうね。

Index: rubytest.rb
===================================================================
RCS file: /home/cvs/ruby/rubytest.rb,v
retrieving revision 1.1.1.2.2.1
diff -u -r1.1.1.2.2.1 rubytest.rb
--- rubytest.rb	1999/02/10 08:44:28	1.1.1.2.2.1
+++ rubytest.rb	1999/06/28 03:21:41
@@ -1,11 +1,26 @@
 #! ./miniruby -I.
 
-x = ENV["LD_LIBRARY_PATH"]
-x = x ? x+":." : "."
-ENV["LD_LIBRARY_PATH"] = x
-
 require 'rbconfig'
 include Config
+
+if File.exist? CONFIG['LIBRUBY_SO']
+  case RUBY_PLATFORM
+  when /-hpux/
+    dldpath = "SHLIB_PATH"
+  when /-aix/
+    dldpath = "LIBPATH"
+  else
+    dldpath = "LD_LIBRARY_PATH"
+  end
+  x = ENV[dldpath]
+  x = x ? ".:"+x : "."
+  ENV[dldpath] = x
+end
+
+if /linux/ === RUBY_PLATFORM and File.exist? CONFIG['LIBRUBY_SO']
+  ENV["LD_PRELOAD"] ||= ""
+  ENV["LD_PRELOAD"] += " ./#{CONFIG['LIBRUBY_SO']}"
+end
 
 $stderr.reopen($stdout)
 error = ''

--
小松克行 / Katsuyuki Komatsu <komatsu@sarion.co.jp>

In This Thread