小松です。

In message of [ruby-list:17636] Re: make Ruby-1.4.2 on BeOS R4.5.2(Intel)
    on 1999/10/12 19:02:59 Katsuyuki Komatsu <komatsu / sarion.co.jp> wrote:
|結局、
|
| 1. configureに--enable-sharedをつけてもつけなくてもlibruby.soが
|    作成される
| 2. 拡張ライブラリを作るときにはlibruby.soが存在していることを
|    想定しているが、通常はその時点では存在しない。このため、
|    拡張ライブラリにlibruby.aが全部組み込まれることがある。
| 3. LIBRARY_PATH上に載っていない.soは拡張ライブラリを含めて
|    ロードできない。
|
|ということでした。__declspec(dllexport)やldの時の-Eスイッチは
|なくても問題なかったです。2はcygwinと同様にGNUmakefile.inか
|なにかを作って対応すればいいとして、3の対策を考慮中です。

すみません、3.はlibruby.aが全部組み込まれてしまった拡張ライブラリは
ロードできないの間違いでした。
libruby.soの方はXLDFLAGSに-Wl,-rpath,${prefix}/libを足せばOKです。

ということで、BeOS R4.5.2(Intel)でソース変更無しで拡張ライブラリも
動くようです (ext/socketのエラーはまだ詳しく見てません)。

# configure.in等のパッチはもうすこしかかります。

$ which ruby
/usr/local/bin/ruby
$ env | grep LIBRARY_PATH
LIBRARY_PATH=%A/lib:/boot/home/config/lib:/boot/beos/system/lib
$ ruby -v -e 'puts $"' -e 'puts $:'
ruby 1.4.2 (1999-09-18) [i586-beos]
marshal.so
/usr/local/lib/ruby/1.4/site_ruby/i586-beos
/usr/local/lib/ruby/1.4/site_ruby
/usr/local/lib/ruby/1.4/i586-beos
/usr/local/lib/ruby/1.4
.
$ cat sum.rb
require "md5"
puts MD5.new(open("sum.rb", "rb").read).hexdigest
$ ruby sum.rb
eadc4325c40907f67375a1a5134082a8
$ 

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