From: Brian Candler Date: 2003-07-23T00:20:39+09:00 Subject: Bug report: ruby-1.8.0p3 fails to compile under FreeBSD-4.7 --7JfCtLOvnd9MIVvH Content-Type: text/plain; charset=us-ascii Content-Disposition: inline gcc -fPIC -g -O2 -DDB_DBM_HSEARCH -DDBM_HDR="" -I. -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0/ext/dbm -DHAVE_DB_H -DHAVE_SYS_CDEFS_H -DHAVE___DB_NDBM_OPEN -DHAVE___DB_NDBM_CLEARERR -c dbm.c dbm.c:29: syntax error before `DBM' dbm.c: In function `free_dbm': dbm.c:49: structure has no member named `di_dbm' dbm.c:49: structure has no member named `di_dbm' dbm.c: In function `fdbm_close': dbm.c:60: structure has no member named `di_dbm' dbm.c:61: structure has no member named `di_dbm' dbm.c:62: structure has no member named `di_dbm' dbm.c: In function `fdbm_initialize': dbm.c:82: `DBM' undeclared (first use in this function) dbm.c:82: (Each undeclared identifier is reported only once dbm.c:82: for each function it appears in.) dbm.c:82: `dbm' undeclared (first use in this function) dbm.c:83: syntax error before `struct' dbm.c:87: `mode' undeclared (first use in this function) dbm.c:113: `dbmp' undeclared (first use in this function) <<< snip more similar errors >>> On this box, DBM is defined in /usr/include/ndbm.h: typedef DB DBM; It in turn includes , which defines DB and DBT. Editing the ext/dbm/Makefile manually, so that it has -DDBM_HDR="", allows the compile to continue. ext/dbm/mkmf.log is attached. Regards, Brian. --7JfCtLOvnd9MIVvH Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="mkmf.log" have_library: checking for __db_ndbm_open() in -ldb... gcc -o conftest -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0 -g -O2 conftest.c -L/u/home/telinco/build/ruby/ruby-1.8.0 -L/usr/local/lib -rdynamic -lruby-static -ldb -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { __db_ndbm_open(); return 0; } /* end */ have_header: checking for db.h... gcc -E -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0 -g -O2 -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ have_header: checking for cdefs.h... gcc -E -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0 -g -O2 -DDB_DBM_HSEARCH -DDBM_HDR= -o conftest.i conftest.c conftest.c:1: cdefs.h: No such file or directory checked program was: /* begin */ #include /* end */ have_header: checking for sys/cdefs.h... gcc -E -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0 -g -O2 -DDB_DBM_HSEARCH -DDBM_HDR= -o conftest.i conftest.c checked program was: /* begin */ #include /* end */ have_func: checking for __db_ndbm_open()... gcc -o conftest -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0 -g -O2 -DDB_DBM_HSEARCH -DDBM_HDR= conftest.c -L/u/home/telinco/build/ruby/ruby-1.8.0 -L/usr/local/lib -rdynamic -ldb -lruby-static -ldb -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { __db_ndbm_open(); return 0; } /* end */ have_func: checking for __db_ndbm_clearerr()... gcc -o conftest -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0 -g -O2 -DDB_DBM_HSEARCH -DDBM_HDR= conftest.c -L/u/home/telinco/build/ruby/ruby-1.8.0 -L/usr/local/lib -rdynamic -ldb -lruby-static -ldb -lcrypt -lm -lc checked program was: /* begin */ int main() { return 0; } int t() { __db_ndbm_clearerr(); return 0; } /* end */ --7JfCtLOvnd9MIVvH--