From: IWATSUKI Hiroyuki Date: 2004-08-06T14:39:51+09:00 Subject: [ruby-dev:24028] --disable-shared --with-static-linked-ext problems 岩月と申します。 Ruby CVS HEADでconfigure --disable-shared --with-static-linked-extを行う 場合、いくつかの問題がありましたので対処しました。正しい対処かどうかは自 信ありませんが、make test-allが最後まで動くのを確認しました。 (1) ./ext/digest/**/*.aがrubyにリンクされない。 extmk.rbの拡張ライブラリのリンク順を操作する処理にて、 digest/以下のライブラリが無視されてしまうようでした。 (2) $(srcdir)/ext以下の*.rbが./.ext/以下へインストールされない。 ただ、このままですと、一部のライブラリ(ext/dlなど?)がファイルを $(RUBYARCHDIR)へインストールしようとして、$(RUBYARCHDIR)が存在しないため に$(RUBYARCHDIR)というファイルを作成してしまい、今度はmake installで失敗 します。$(RUBYARCHDIR)はsoファイルを作成する際にのみmkdirされるようです が、そういうものでしょうか? Index: ext/extmk.rb =================================================================== RCS file: /home/don/ruby/cvs/src/ruby/ext/extmk.rb,v retrieving revision 1.64 diff -u -p -r1.64 extmk.rb --- ext/extmk.rb 6 May 2004 04:32:49 -0000 1.64 +++ ext/extmk.rb 6 Aug 2004 03:30:44 -0000 @@ -360,7 +360,7 @@ if $extlist.size > 0 if (while l > 0; break true if r.include?(list[l-=1][1]) end) list.insert(l + 1, e) end - next + next if l > 0 end f = format("%s/%s.%s", s, i, $LIBEXT) if File.exist?(f) Index: lib/mkmf.rb =================================================================== RCS file: /home/don/ruby/cvs/src/ruby/lib/mkmf.rb,v retrieving revision 1.194 diff -u -p -r1.194 mkmf.rb --- lib/mkmf.rb 13 Jul 2004 06:51:26 -0000 1.194 +++ lib/mkmf.rb 6 Aug 2004 03:47:36 -0000 @@ -910,7 +910,7 @@ CLEANLIBS = #{n}#{CONFIG['DLEXT']} # CLEANOBJS = *.#{$OBJEXT} *.#{$LIBEXT} *.s[ol] *.pdb *.exp *.bak all: #{target ? $extout ? "install" : "$(DLLIB)" : "Makefile"} -static: $(STATIC_LIB) +static: $(STATIC_LIB) install-rb } mfile.print CLEANINGS 以上です。よろしくお願いいたします。 -- Hiroyuki Iwatsuki