From: nobu.nakada@... Date: 2002-10-01T08:40:44+09:00 Subject: [ruby-list:36055] Re: [ANN] ruby-sumo なかだです。 At Tue, 1 Oct 2002 07:08:41 +0900, Shirai,Kaoru wrote: > > そのあとに、t = (void (*)())memchr()というテストをしているはず > > なんですが。mkmf.logにはその部分はないでしょうか。 > >  この部分のことでしょうか。 このあとです。 > gcc -o conftest -I/package/prog/ruby/lib/ruby/1.6/i686-linux -g -O2 > -rdynamic -L/package/prog/ruby/lib > -L/package/prog/ruby/lib/ruby/1.6/i686-linux conftest.c -lc libruby.a > -ldl -lcrypt -lm > gcc: libruby.a: No such file or directory > conftest.c: In function `t': > conftest.c:3: too few arguments to function `memchr' > >  あ、それ以前に何か libruby.a が見付からないとか言ってますね。 二三日前に気づいたのですが、--enable-sharedをつけないと $(LIBRUBYARG)が$(LIBRUBY_A)になってしまって、カレントディレクト リにライブラリがある場合(つまりruby自身をリンクするとき)以外は 意味がありません。これは要修正ですが、既に出ちゃってる1.6にはど うしようもないので、extconf.rbでなんとかしないといけませんね。 > extconf.rb の > > $libs += " " + CONFIG["LIBRUBYARG"] > > を、 > > $libs += " -lruby" > > にすると memchr()... yes となり、成功しました。 RUBY_INSTALL_NAMEを変えてる場合とか-lが使えない環境とかでまずい ので、これでどうでしょうか。 Index: extconf.rb =================================================================== RCS file: /cvs/ruby/src/shim/ruby16/ext/stringio/extconf.rb,v retrieving revision 1.6 diff -u -2 -p -r1.6 extconf.rb --- extconf.rb 9 Sep 2002 12:23:52 -0000 1.6 +++ extconf.rb 30 Sep 2002 23:40:09 -0000 @@ -56,6 +56,12 @@ end libs = $libs libpath = $LIBPATH -$libs += " " + CONFIG["LIBRUBYARG"] -$LIBPATH |= [Config::CONFIG["libdir"]] +unless have_func "ruby_init", "ruby.h" + $libs = libs + " " + CONFIG["LIBRUBYARG"] + $LIBPATH = libpath | [Config::CONFIG["libdir"]] + unless have_func "ruby_init", "ruby.h" + $libs = libs + find_library(CONFIG["RUBY_INSTALL_NAME"], "ruby_init") + end +end have_func "rb_io_addstr", "ruby.h" have_func "rb_io_puts", "ruby.h" -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦