Siena. です。 》明日30日夕方4時頃をめどにpreview1をリリースします。 慌てふためいて ^^; ご報告。 時間が取れないのでビルドを通しただけですが、以下ご確認ください。 OS/2 V4 with EMX 0.9d で ruby 1.8.0 はビルドできていました。 現在の CVS 版を次のようにビルドするとリンクエラーが頻発します。 例によって、リンク可能なライブラリは静的リンク全部入り、です。 $ ( cd ext ; mv Setup.emx Setup.emx.org ; egrep -vi 'win|\<dl\>' Setup.emx.org | sed 's/# *//' > Setup.emx ) $ autoconf $ ./configure --with-static-linked-ext=yes --disable-shared $ make 2>&1| sed 's/referenced from text segment/.../g' (略) SETUP=ext/Setup.emx EXTOBJS=(略) EXTLIBS=-lncurses -ltermcap -liconv -lreadline -lsocket -lz EXTLDFLAGS=-L"$(libdir)" making ruby.exe /bin/sh: libdir: not found make[1]: Entering directory `/tmp/ruby' gcc -Zmt -DOS2 -Zmts -I. -I. -o ext/extinit.o -c ext/extinit.c gcc -Zmt -DOS2 -Zmts -Zbsd-signals -L. -L main.o ($EXTOBJS:略) \ -lruby-static -lm ($EXTLIBS:略) -o ruby.exe T:\lib\crt0.o: Undefined symbol _main ... T:\lib/readline.a(display.o): Undefined symbol _tgoto ... T:\lib/readline.a(display.o): Undefined symbol _tgoto ... T:\lib/readline.a(terminal.o): Undefined symbol _tgetnum ... (たくさん略) T:\lib/readline.a(terminal.o): Undefined symbol _tgetflag ... make[1]: *** [ruby.exe] Error 1 (略) 二つの問題があり、ext/extmk.rb に対する添付のパッチで make test まで通るのを確認しました。 (1) EXTFLAGS が引数無しの "-L" に展開され、main.o がリンクされない ChangeLog: |Wed Aug 6 17:28:10 2003 Nobuyoshi Nakada <nobu / ruby-lang.org> | * ext/extmk.rb (extmake): pass LIBPATH to make ruby. [ruby-dev:21137] "$(libdir)" が正しく展開されるように変更するのが本筋かと思いますが、 とりあえずの対症療法として $extpath から "$(libdir)" を削除しました。 (2) $extlibs の重複除去のため、EXTLIBS の正しいリンク順が破壊される ChangeLog: |Tue Aug 12 16:55:11 2003 Nobuyoshi Nakada <nobu / ruby-lang.org> | * ext/extmk.rb (extmake): compact $extlibs. 少なくともうちのビルド環境では、経験的に調べた範囲では、 ライブラリ a が b に依存する場合に、リンク時のコマンドでオプションの 指定順は "-la -lb" とせねばならず、"-lb -la" とはできないようです。 上記の変更のために、重複した時にこの逆転が起きてしまっています。 パッチでは、新規追加分を $extlibs の左側に追加するようにしました。
Index: ruby/ext/extmk.rb =================================================================== RCS file: /src/ruby/ext/extmk.rb,v retrieving revision 1.43 diff -u -p -2 -r1.43 extmk.rb --- ruby/ext/extmk.rb 17 Aug 2003 02:32:07 -0000 1.43 +++ ruby/ext/extmk.rb 29 Oct 2003 08:55:46 -0000 @@ -110,5 +110,5 @@ def extmake(target) $extflags += " " + $DLDFLAGS unless $DLDFLAGS.empty? $extflags += " " + $LDFLAGS unless $LDFLAGS.empty? - $extlibs |= $libs.split | $LOCAL_LIBS.split + $extlibs = $libs.split | $LOCAL_LIBS.split | $extlibs $extpath |= $LIBPATH end @@ -261,4 +261,5 @@ SRC end $extpath.delete("$(topdir)") + $extpath.delete("$(libdir)") $extflags = libpathflag($extpath) << " " << $extflags.strip conf = [
--- Siena. <mailto:siena / faculty.chiba-u.jp>