[#44757] [ruby-trunk - Bug #5533][Assigned] Pathname's raising "invalid sequence" — Shyouhei Urabe <shyouhei@...>
5 messages
2011/11/01
[#44775] [ruby-trunk - Feature #5549][Open] Comparable#min, Comparable#max — Tsuyoshi Sawada <sawadatsuyoshi@...>
4 messages
2011/11/02
[#44796] [Backport93 - Backport #5565][Open] STDOUT.puts writes LF (not CR+LF) in textmode — Usaku NAKAMURA <redmine@...>
6 messages
2011/11/03
[#44800] [ruby-trunk - Bug #5576][Open] [Universal Newline]改行コードが"\r\n"で出力されない — pegacorn jp <subscriber.jp+ruby-redmine@...>
8 messages
2011/11/06
[#44817] [ruby-trunk - Feature #5584][Open] Array#sample! — Masaki Matsushita <glass.saga@...>
12 messages
2011/11/07
[#44837] [ruby-trunk - Bug #5593][Open] Windows上で \\.\ から始まるデバイスをopenするとクラッシュ — 宗介 相良 <snowjail@...>
5 messages
2011/11/08
[#44850] [ruby-trunk - Feature #5606][Open] String#each_match(regexp) — Tomoaki Nishiyama <tomoakin@...>
5 messages
2011/11/10
[#44853] [ruby-trunk - Bug #5608][Open] make -j 16 sometimes fail — Tomoaki Nishiyama <tomoakin@...>
5 messages
2011/11/10
[#44870] Re: [ruby-cvs:40906] kosaki:r33728 (trunk): * test/ruby/test_io.rb (test_fcntl_dupfd): skip if Fcntl::DUPFD — Tanaka Akira <akr@...>
2011/11/13 <kosaki@ruby-lang.org>:
3 messages
2011/11/14
[#44899] Re: [ruby-cvs:41015] kosaki:r33837 (trunk): * configure.in: turn on PIE if --enable-shared is not specified. — Tanaka Akira <akr@...>
2011/11/25 <kosaki@ruby-lang.org>:
3 messages
2011/11/27
[#44904] [ruby-trunk - Bug #5688][Open] Solaris10 で spawn を繰り返すとメモリリークする — okkez _ <redmine@...>
14 messages
2011/11/29
[#44922] [ruby-trunk - Bug #5688] Solaris10 で spawn を繰り返すとメモリリークする
— okkez _ <redmine@...>
2011/12/02
[#44906] [ruby-trunk - Bug #5689][Open] class variables inside of instance methods inside of "class_eval" — Shyouhei Urabe <shyouhei@...>
5 messages
2011/11/30
[ruby-dev:44861] Re: [Bug #3385] ext/dbm: accept various version of db
From:
Tanaka Akira <akr@...>
Date:
2011-11-11 23:14:20 UTC
List:
ruby-dev #44861
2010年6月3日23:38 Takahiro Kambe <redmine@ruby-lang.org>:
> Bug #3385: ext/dbm: accept various version of db
> http://redmine.ruby-lang.org/issues/show/3385
>
> 起票者: Takahiro Kambe
> ステータス: Open, 優先度: Normal
> ruby -v: ruby 1.9.2dev (2010-05-31 revision 28117) [i486-netbsdelf]
>
> ext/dbのextconf.rbに、様々なバージョンのBerkley DBを認識させるためのパッチです。
かなり前の話ですが、疑問がわいたので教えてください。
> --- ext/dbm/extconf.rb.orig 2009-10-02 10:45:39.000000000 +0000
> +++ ext/dbm/extconf.rb
> @@ -36,7 +39,8 @@ def headers.db_check(db)
> db_prefix ||= ""
>
> if (have_library(db, db_prefix+"dbm_open") || have_func(db_prefix+"dbm_open")) and
> - hdr = self.fetch(db, ["ndbm.h"]).find {|h| have_type("DBM", h, hsearch)}
> + hdr = self.fetch(db, ["ndbm.h"]).find {|h| have_type("DBM", h, hsearch)} or
> + hdr = self.fetch(db, ["ndbm.h"]).find {|h| have_type("DBM", ["db.h", h], hsearch)}
> have_func(db_prefix+"dbm_clearerr") unless have_gdbm
> $defs << hsearch if hsearch
> $defs << '-DDBM_HDR="<'+hdr+'>"'
ここの部分ですが、have_type("dbm", ["db.h", h], hsearch)} を
加えているのはなんででしょう?
ここで h は "db2/db.h", "db2.h", "db.h" といったヘッダフィルの名前が
入っているので、それに "db.h" を合わせると
"db.h" と "db2/db.h" を両方 include するとか、
"db.h" と 2回 include するとかいうことをテストすることになります。
実際、Berkeley DB が入っていない環境で (Ruby 1.9.3 を) を試すと、
1: #include "ruby.h"
2:
3: #include <db.h>
4: #include <db.h>
5:
6: /*top*/
7: typedef DBM conftest_type;
8: int conftestval[sizeof(conftest_type)?1:-1];
とか、
/* begin */
1: #include "ruby.h"
2:
3: #include <db.h>
4: #include <db2/db.h>
5:
6: /*top*/
7: typedef DBM conftest_type;
8: int conftestval[sizeof(conftest_type)?1:-1];
/* end */
といった記録が ext/dbm/mkmf.log に残っています。
どうも奇妙に思えるんですが、どういう意図なんでしょう?
--
[田中 哲][たなか あきら][Tanaka Akira]