Hallo Perl developers, I am adding small patch fixing some problems of ndbm/odbm emulation in DB3: - Some ndbm/odbm defines are disabled by default. On systems, where dbm.h and ndbm.h are simple symlinks to db.h, emualtion needs set-u define. - ACTION is defined in both DB and PERL (unfortunatelly in different meaning). Carefull permutation of includes can simply workaround the problem. The patch was not tested with real historic implementations of ndbm/dbm, but I guess it should work. Notes: lib/ndbm.............ok lib/odbm.............FAILED at test 9 Failed 1/64 tests, 98.44% okay DB3 is, by default installed without links to historical names. This patch doesn't solve this - simply if these links are not created, perl builds without odbm/ndbm emulation. But it's problem of DB3's packager, not Perl. ln -s libdb-3.so /usr/lib/libdb.so ln -s libdb-3.so /usr/lib/libdbm.so ln -s libdb-3.so /usr/lib/libndbm.so ln -s libdb-3.so /usr/lib/libdb1.so ln -s db.h /usr/include/ndbm.h ln -s db.h /usr/include/dbm.h -- Stanislav Brabec --- perl-5.6.0/ext/NDBM_File/NDBM_File.xs.orig Tue Feb 15 06:42:40 2000 +++ perl-5.6.0/ext/NDBM_File/NDBM_File.xs Wed Dec 13 19:45:28 2000 @@ -1,7 +1,9 @@ +#define DB_DBM_HSEARCH 1 +#include <ndbm.h> + #include "EXTERN.h" #include "perl.h" #include "XSUB.h" -#include <ndbm.h> typedef struct { DBM * dbp ; --- perl-5.6.0/ext/ODBM_File/ODBM_File.xs.orig Wed Feb 16 07:12:17 2000 +++ perl-5.6.0/ext/ODBM_File/ODBM_File.xs Wed Dec 13 20:33:05 2000 @@ -1,7 +1,7 @@ -#include "EXTERN.h" -#include "perl.h" -#include "XSUB.h" +#include "config.h" +#undef VOIDUSED +#define DB_DBM_HSEARCH 1 #ifdef I_DBM # include <dbm.h> #else @@ -10,6 +10,10 @@ # endif #endif +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" + #ifdef DBM_BUG_DUPLICATE_FREE /* * DBM on at least Ultrix and HPUX call dbmclose() from dbminit(),Thread Next