山田@日立(電サ)です.

 From: WATANABE Hirofumi <watanabe / ase.ptg.sony.co.jp> さんの 
  Subject: [ruby-list:16364] Re: ruby1.4.0 on BSD/OS 4.0 というお手紙から

 > わたなべです.
 > 
 > Yamada Kenji <kyamada / hitachi-densa.co.jp> writes:
 > 
 > : 1. "-ldl" をリンクしようとしているのがおかしい
 > : 2. コンパイル時 "-fPIC" オプションが付かないのがおかしい
 > : 3. コンパイラとして shlicc を使わないのがおかしい
 > :
 > :のどれかなんでしょうか?
 > 
 > たぶん 3 だと思います.

configure を最後につけるパッチのように変更して

# env CC=cc ./configure 

としたらうまく行きました.

うーん,ずっと BSD/OS の cc は gcc とまったく同じ
だと思っていたんですが,動作が違うようです.
# man cc すると gcc のマニュアルが出てくるんだけど..

変更点
	CC=cc
	LDFLAGS=-rdynamic -Wl,-rpath,/usr/local/lib/ruby/1.4/i386-bsdi4.0
# パスの指定はうまい方法があるだろうと思うけど...
	LDSHARED="ld -shared"

実際は BSD/OS 3.x と 4.x を分けた方が良さそうですが,
3.x では試していないのでこれで勘弁して下さい.

*** configure	Mon Aug 30 15:35:31 1999
--- configure.orig	Mon Aug 30 15:31:57 1999
***************
*** 4031,4037 ****
      openstep*)	;;
      rhapsody*)	;;
      human*)	;;
!     bsdi*)	;;
      cygwin*)	;;
      netbsd*) CCDLFLAGS=-fpic
       case "$host_cpu" in
--- 4031,4037 ----
      openstep*)	;;
      rhapsody*)	;;
      human*)	;;
!     bsdi3*)	;;
      cygwin*)	;;
      netbsd*) CCDLFLAGS=-fpic
       case "$host_cpu" in
***************
*** 4088,4096 ****
  			rb_cv_dlopen=yes ;;
  	openbsd*) 	LDSHARED="ld -Bforcearchive -Bshareable"
  			rb_cv_dlopen=yes ;;
! 	bsdi*)		LDSHARED="ld -shared"
! 			LDFLAGS="-rdynamic -Wl,-rpath,/usr/local/lib/ruby/1.4/i386-bsdi4.0"
! 			rb_cv_dlopen=yes ;;
  	nextstep*)	LDSHARED='cc -r -nostdlib'
  			LDFLAGS="-u libsys_s"
  			DLDFLAGS="$ARCH_FLAG" 
--- 4088,4097 ----
  			rb_cv_dlopen=yes ;;
  	openbsd*) 	LDSHARED="ld -Bforcearchive -Bshareable"
  			rb_cv_dlopen=yes ;;
! 	bsdi3*) 	case "$CC" in
! 			*shlicc*)	LDSHARED="$CC -r"
! 					rb_cv_dlopen=yes ;;
! 			esac ;;
  	nextstep*)	LDSHARED='cc -r -nostdlib'
  			LDFLAGS="-u libsys_s"
  			DLDFLAGS="$ARCH_FLAG"