[Exim] Compiling errors with Berkeley DB v4.1.24

Top Page
Delete this message
Reply to this message
Author: Eli
Date:  
To: exim-users
Subject: [Exim] Compiling errors with Berkeley DB v4.1.24
Hi,

I have Berkeley/Sleepycat DB version 4.1.24 on my Linux system, and I
get the following error when compiling:

gcc -c -O2 exim_dbmbuild.c
exim_dbmbuild.c: In function `main':
exim_dbmbuild.c:121: warning: passing arg 2 of pointer to function from
incompatible pointer type
exim_dbmbuild.c:121: warning: passing arg 4 of pointer to function makes
pointer from integer without a cast
exim_dbmbuild.c:121: too few arguments to function
make[1]: *** [exim_dbmbuild] Error 1
make[1]: Leaving directory `/usr/src/exim-4.10/build-Linux-i386'
make: *** [go] Error 2

I'm pretty sure that this is because they changed the API *again* for
4.1.x, since I had this compile just fine back when I had a 4.0.x
version on my system. Problem is that I really do want DB support, and
from reading the other issues on the list, it seems I can't use GDBM
either because of the missing .dir and .pag extension problem (unless
there are patches that are production safe?).

I can't be certain that this is just an API problem (although the error
seems to lead in that direction) because I've had a long string of
issues trying to get Berkeley DB 4.1.24 with DB 1.x, DBM and NDBM
support to co-exist with GDBM all on a single system (I don't use GDBM
for dbm/ndbm support). I've seen numous packages that just choke on
detecting/compiling with support for the various db formats (PHP,
Apache, Perl), however I've been able to hack at their config scripts to
get them working somewhat (although I do think I encountered this same
error when trying to get db3 support working in PHP...).

I checked the Exim 4.10 source as much as I could follow, and USE_DB is
the only DB define, and the dbwhatever.h file that has all the wrapper
routines in it seems to be good (includes db.h, mentions support for 3.x
and 4.x), and even the order in which things are attempted (DB, DB3,
DB2, DB1, GDBM...) is good, so I don't know if there's any simple tweak
I can do or not.

So, does anyone know (or have) any changes I can do to the source files
so I can get Exim to compile with Berkeley DB support?

If anyone needs it, I have a full log of my "make" attempt, as well as
the config.h file generated. I have posted them at
http://nutbar.chemlab.org/tests/exim/make.log and
http://nutbar.chemlab.org/tests/exim/config.h. If you need any other
info on the compiling environment, just let me know.

Thanks in advance!

Eli.