山田@日立(電サ)です. 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"