From: Takahiro Kambe Date: 2006-09-03T23:56:09+09:00 Subject: [ruby-dev:29445] ext/dbm on ruby-1.8.5 こんばんは。 ext/dbmの拡張ライブラリが作成されていないことに気がつきました。 % uname -sr NetBSD 4.99.1 ext/dbm/extconf.rbは、1.8.4から1.8.5で、 diff -dup ruby-1.8.4/ext/dbm/extconf.rb ruby-1.8.5/ext/dbm/extconf.rb --- ruby-1.8.4/ext/dbm/extconf.rb 2003-07-24 16:41:36.000000000 +0900 +++ ruby-1.8.5/ext/dbm/extconf.rb 2006-05-26 08:44:05.000000000 +0900 @@ -33,7 +33,7 @@ def db_check(db) if have_library(db, db_prefix("dbm_open")) || have_func(db_prefix("dbm_open")) for hdr in $dbm_conf_headers.fetch(db, ["ndbm.h"]) if have_header(hdr.dup) and have_type("DBM", hdr.dup, hsearch) - $CFLAGS += " " + hsearch + '-DDBM_HDR="<'+hdr+'>"' + $defs << hsearch << '-DDBM_HDR="<'+hdr+'>"' return true end end と、変更されています。そして後の方で、 if /DBM_HDR/ =~ $CFLAGS and have_func(db_prefix("dbm_open")) といった $CFLAGS の内容をチェックしていますが、$CFLAGS には DBM_HDRと いったパターンは含まれていないようです。これは、 --- ext/dbm/extconf.rb.orig 2006-05-26 08:44:05.000000000 +0900 +++ ext/dbm/extconf.rb @@ -55,7 +55,7 @@ end have_header("cdefs.h") have_header("sys/cdefs.h") -if /DBM_HDR/ =~ $CFLAGS and have_func(db_prefix("dbm_open")) +if $defs.grep(/DBM_HDR/) and have_func(db_prefix("dbm_open")) have_func(db_prefix("dbm_clearerr")) unless $dbm_conf_have_gdbm create_makefile("dbm") end と、するとうまくいきました。 -- 神戸 隆博 / Takahiro Kambe