undefined reference to `__db_ndbm_open'

Julien ÉLIE julien at trigofacile.com
Tue Aug 6 21:38:50 UTC 2013


Hi The Doctor,

> #define HAVE_BDB_DBM 1
> /* #undef HAVE_DB1_NDBM_H */
> /* #undef HAVE_DBM */
> /* #undef HAVE_GDBM_NDBM_H */
> #define HAVE_NDBM_H 1

I have just committed a patch, hoping it will fix the issue you are 
facing.  Could you please tell whether tomorrow's snapshot builds fine 
on your system?

I believe the issue comes from the fact that HAVE_BDB_DBM is set to 1 
even though the Berkeley DB library you are using does not have ndbm 
support.
I have added a test at configure time to make sure that HAVE_BDB_DBM is 
set to 1 only when Berkeley DB is shipped with its ndbm compatibility 
layer.  It was otherwise always assumed to be the case.

Also, HAVE_DBM is not set on your system whereas you have ndbm.h 
(HAVE_NDBM_H).  I believe it is another bug because ckpasswd tries to 
use ndbm.h whereas HAVE_DBM is not set (thus telling dbm support will 
fail).  I guess you have gdbm support so, in case it is the case, 
HAVE_DBM will be set to 1 and ndbm.h will properly be usable; otherwise, 
HAVE_DBM will still be undef, and ckpasswd will not try to use ndbm.h 
(which was not the case before).

-- 
Julien ÉLIE

« – Je t'ai préparé une bonne soupe dont tu me diras des
     nouvelles, mon garçon !
   – Pour moi, ça, ce n'est pas des bonnes nouvelles ! » (Astérix)


More information about the inn-workers mailing list