[Python-Dev] Dbm failure

Thomas Wouters thomas@xs4all.net
Fri, 19 Jan 2001 13:33:47 +0100


On Fri, Jan 19, 2001 at 07:53:36PM +0200, Moshe Zadka wrote:
> test test_dbm skipped --  /home/moshez/prog/src/python/python/dist/src/build/lib.linux-i686-2.1/dbm.so: undefined symbol: dbm_firstkey
> Did it happen to anyone else? 

Yes, to me. You're suffering from the same thing I did: GNU sucks. Okay,
okay, not as much as MS products or most other UNIX software, but still ;)
The problem is a conflict between gdbm and glibc.

gdbm (1.7.3, which is what woody currently carries, not sure why it isn't
updated) offers a dbm interface/replacement, which includes a libdbm.(so|a)
and /usr/include/gdbm-ndbm.h. Glibc (or at least the debian package) *also*
offers a dbm interface/replacement, which consists of libdb1.(so|a) and
/usr/include/db1/ndbm.h (which needs /usr/include/db1/*.h). If you add
/usr/include/db1 to your include path, and -ldbm to the dbmmodule, you end
up with the wrong versions. You need either to include /usr/include/db1 in
your includepath and use -ldb1, or fix up dbmmodule.c so it includes
gdbm-ndbm.h and uses -ldbm.

I only figured this out yesterday, and sent Andrew a mail about that... I'm
not sure what the Right(tm) way to fix this is :( I've always loathed these
library/version mismatches :P

-- 
Thomas Wouters <thomas@xs4all.net>

Hi! I'm a .signature virus! copy me into your .signature file to help me spread!