From: Jun-ichiro itojun Hagino Date: 1999-04-15T14:41:00+09:00 Subject: [ruby-dev:6617] Re: IPv6 ruby 流れ流れてruby-devに移りました。 > on 99/04/14, Jun-ichiro itojun Hagino writes: >> README.v6に書いておいたのですが、現状 >> - KAME IPv6 stackの場合、/usr/local/v6/lib/libinet6.aというので >> getaddrinfo/getnameinfoを提供していますが、dynamic link libraryは >> 提供しておりません。さて、extconf.rbはどうすればいい? >> - 他のIPv6 stackも似たりよったりです。 >> - IPv4 only hostの場合、missing/getaddrinfo.cとかが使われますが、 >> これをsocket.soに入れるにはどうすればいいのか? >> - 両者の場合分けを解決するには? ext/socket/extconf.rb.in? >> というかんじです。 >ひとつ考えたのは、missing/{getaddrinfo,getnameinfo}.c と >addrinfo.h を ext/socket/ に移動して、extconf.rb に次の >patch をあてることです。 missing以下のファイルはOSに欠けている関数を提供するためのものなので、 getaddrinfo.cを置いてもいいのでは? addrinfo.hはmissing/addrinfo.hへ 動かします。 とりあえずこんな感じにしてみました。 1. IPv6 node上で 1a. getaddrinfoが提供されていない -> configureでハネる 1b. getaddrinfoが提供されているが腐っている -> configureでハネる 1c. getaddrinfoが提供されていて、かつまとも: まちまち 以下の場合、ext/socket/socket.cはdynamic linkできる。 - libc.soにgetaddrinfoが入ってる - libinet6.soとかが提供されていて、getaddrinfoが入ってる 以下の場合、ext/socket/socket.cはdynamic linkできない。 - static link libraryにgetaddrinfoが入ってる 状況はそのうち変わると思うので、現状dynamic linkしない。 2. IPv4 node上で config.hを見てext/socket/extconf.rbが頑張る。 dynamic linkもできます。 http://www2.kame.net/dev/cvsweb.cgi/ruby13/ext/socket/extconf.rb.diff?cvsroot=apps&r1=1.1.1.1%3Av132_990413&tr1=1.1&r2=1.3%3AHEAD&tr2=1.3&f=u itojun