いがらしです。ruby-devに振ります。

postgresだから関係ないやとか思ってたけど、
実は僕が困っていたのと同じ問題だったようです。

At Sat, 3 Jun 2000 22:40:48 +0900,
in [ruby-list:23044] Re: postgres-0.6.0 + mod_ruby + eRuby,
Minero Aoki <aamine / dp.u-netsurf.ne.jp> wrote:
> 
>   In mail "[ruby-list:23041] Re: postgres-0.6.0 + mod_ruby + eRuby"
>     Kentaro Inagaki / 稲垣 健太郎 <inagaki / tg.rim.or.jp> wrote:
> 
> > -r-xr-xr-x  1 root  wheel  1500127 Jun  1 21:55 /usr/local/lib/ruby/1.5/i386-freebsd5.0/postgres.so
> 
> > こんなにでかいものなんでしょうか?
> 
> これって、ruby がスタティックリンクされてませんか?
> strip してないと ruby が 1MB くらいあったはずです。

lib/mkmf.rb の 1.7 ---> 1.8 の変更で

diff -u -r1.7 -r1.8
--- lib/mkmf.rb 2000/04/12 05:06:23     1.7
+++ lib/mkmf.rb 2000/05/09 04:53:14     1.8
@@ -328,6 +328,11 @@
   end
   $DLDFLAGS = CONFIG["DLDFLAGS"]
 
+  if $configure_args['--enable-shared']
+    $libs = CONFIG["LIBRUBYARG"] + " " + $libs
+    $DLDFLAGS = $DLDFLAGS + " -L$(topdir)"        # <------
+  end
+
   if RUBY_PLATFORM =~ /beos/
     $libs = $libs + " " + CONFIG["LIBRUBYARG"]
     $DLDFLAGS = $DLDFLAGS + " -L" + CONFIG["prefix"] + "/lib"

と、アーキテクチャ依存のディレクトリ
(/usr/local/lib/ruby/1.5/i386-freebsd5.0/とか)を
見に行くようになったみたいですが、
そのせいでstatic linkされてしまうようです。

もともとの変更の意図を理解していないのですが、
該当行をcomment outしてしのいでいます。

ちなみに環境は
Linux 2.0.35
libc 5.4.44
gcc 2.7.2.3
GNU ld 2.8.1
です。

こんな環境(Debian potato)
Linux 2.2.10
glibc 2.1.3
GNU ld 2.9.5
gcc 2.95.2
では、static linkされるもののSEGVったりはしませんでした。


# 気づくまで1週間もかかった……

--
五十嵐  宏  (Hiroshi IGARASHI)