ruby-changes:22677
From: akr <ko1@a...>
Date: Wed, 22 Feb 2012 06:14:03 +0900 (JST)
Subject: [ruby-changes:22677] akr:r34726 (trunk): * ext/dbm/extconf.rb: check DBM_SUFFIX for Mac OS X.
akr 2012-02-22 06:13:52 +0900 (Wed, 22 Feb 2012) New Revision: 34726 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34726 Log: * ext/dbm/extconf.rb: check DBM_SUFFIX for Mac OS X. Its ndbm.h doesn't include db.h. Modified files: trunk/ChangeLog trunk/ext/dbm/dbm.c trunk/ext/dbm/extconf.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 34725) +++ ChangeLog (revision 34726) @@ -1,3 +1,8 @@ +Wed Feb 22 06:12:15 2012 Tanaka Akira <akr@f...> + + * ext/dbm/extconf.rb: check DBM_SUFFIX for Mac OS X. + Its ndbm.h doesn't include db.h. + Wed Feb 22 06:02:42 2012 Tanaka Akira <akr@f...> * ext/dbm/dbm.c (fdbm_initialize): disable Berkeley DB error messages. Index: ext/dbm/dbm.c =================================================================== --- ext/dbm/dbm.c (revision 34725) +++ ext/dbm/dbm.c (revision 34726) @@ -197,7 +197,7 @@ rb_fd_fix_cloexec(dbm_dirfno(dbm)); #endif -#if defined(_DB_H_) && defined(HAVE_TYPE_DBC) +#if defined(RUBYDBM_DB_HEADER) && defined(HAVE_TYPE_DBC) /* Disable Berkeley DB error messages such as: * DB->put: attempt to modify a read-only database */ ((DBC*)dbm)->dbp->set_errfile(((DBC*)dbm)->dbp, NULL); @@ -1101,7 +1101,7 @@ # else rb_define_const(rb_cDBM, "VERSION", rb_str_new2("GDBM (unknown)")); # endif -#elif defined(_DB_H_) +#elif defined(RUBYDBM_DB_HEADER) # if defined(HAVE_DB_VERSION) /* The version of the dbm library, if using Berkeley DB */ rb_define_const(rb_cDBM, "VERSION", rb_str_new2(db_version(NULL, NULL, NULL))); Index: ext/dbm/extconf.rb =================================================================== --- ext/dbm/extconf.rb (revision 34725) +++ ext/dbm/extconf.rb (revision 34726) @@ -152,6 +152,9 @@ # it defines _DB_H_. have_db_header = have_macro('_DB_H_', hdr, hsearch) + # Mac OS X uses Berkeley DB 1 but ndbm.h doesn't include db.h. + have_db_header |= have_macro('DBM_SUFFIX', hdr, hsearch) + # Old GDBM's ndbm.h, until 1.8.3, defines dbm_clearerr as a macro which # expands to no tokens. have_gdbm_header1 = have_empty_macro_dbm_clearerr(hdr, hsearch) @@ -172,6 +175,10 @@ return false end + if have_db_header + $defs.push('-DRUBYDBM_DB_HEADER') + end + have_gdbm_header = have_gdbm_header1 | have_gdbm_header2 if have_gdbm_header $defs.push('-DRUBYDBM_GDBM_HEADER') -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/