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>