From: Shugo Maeda Date: 2003-08-18T12:31:33+09:00 Subject: [ruby-list:38135] Re: ruby-tcpwrap and mkmf.rb 前田です。 At Sat, 16 Aug 2003 19:19:12 +0900, Takahiro Kambe wrote: > > > cc -o conftest -I/usr/pkg/lib/ruby/1.6/i386-netbsdelf -O2 -fPIC -pipe -Wl,-export-dynamic conftest.c -lwrap -lc -lcrypt -lm > > > /usr/lib/libwrap.so: undefined reference to `allow_severity' > > > /usr/lib/libwrap.so: undefined reference to `deny_severity' > > > > この二つはlibwrapで定義されているはずのもののようですが、別のラ > > イブラリに分かれているとかでしょうか。 > 違います。かつて同じようなメールを出していました。 スマートにはほど遠いんですが、こんな感じでどうでしょうか。 # 0.5へのパッチです。 Index: extconf.rb =================================================================== RCS file: /src/lib/tcpwrap/extconf.rb,v retrieving revision 1.2 diff -u -r1.2 extconf.rb --- extconf.rb 24 Jan 2003 03:03:03 -0000 1.2 +++ extconf.rb 18 Aug 2003 03:27:27 -0000 @@ -2,6 +2,52 @@ require "mkmf" +def have_libwrap + lib = "wrap" + func = "main" + printf "checking for %s() in -l%s... ", func, lib + STDOUT.flush + if func && func != "" + libs = append_library($libs, lib) + if /mswin32|mingw/ =~ RUBY_PLATFORM + r = try_link(<<"SRC", libs) +#include +#include +int allow_severity = 0; +int deny_severity = 0; +int main() { return 0; } +int t() { #{func}(); return 0; } +SRC + unless r + r = try_link(<<"SRC", libs) +#include +#include +int allow_severity = 0; +int deny_severity = 0; +int main() { return 0; } +int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; } +SRC + end + else + r = try_link(<<"SRC", libs) +int allow_severity = 0; +int deny_severity = 0; +int main() { return 0; } +int t() { #{func}(); return 0; } +SRC + end + unless r + print "no\n" + return false + end + else + libs = append_library($libs, lib) + end + $libs = libs + print "yes\n" + return true +end + dir_config("wrap") dir_config("ident") if have_header("ident.h") and @@ -9,6 +55,7 @@ have_func("ident_id") end if have_header("tcpd.h") and - have_library("wrap") + have_libwrap create_makefile("tcpwrap") end + Index: tcpwrap.c =================================================================== RCS file: /src/lib/tcpwrap/tcpwrap.c,v retrieving revision 1.3 diff -u -r1.3 tcpwrap.c --- tcpwrap.c 29 Jan 2003 03:46:20 -0000 1.3 +++ tcpwrap.c 18 Aug 2003 03:27:27 -0000 @@ -98,7 +98,6 @@ static VALUE tcpd_accept(VALUE self) { - int access = 0; tcp_wrapper_t *tcpd; VALUE sock; int sockfd; At Sat, 16 Aug 2003 12:51:55 +0900, Takahiro Kambe wrote: > P.S. > ruby-tcpwrapのhome pageとして適切なページってありますでしょうか? ないです。しいていえば、 http://raa.ruby-lang.org/list.rhtml?name=ruby-tcpwrap くらいでしょうか(^_^; -- 前田 修吾