Author: Robert Steiner Date: To: exim-users Subject: [exim] Build exim with DBM in custom path
Hello everybody,
I have compiled the Berkeley DB 4.8.30 from source into a custom path
and now try to use that with exim.
I made no changes of any defaults for DB except
"--prefix=/custom_path"
(BTW, the whole documentation does not mention versions 5 and 6 of the
Berkeley DB - are those compatible as well? Are those recommended or
should I use the latest version of 4?)
I have tried the following settings in Local/Makefile:
=== 1:
DBMLIB=/custom_path/lib/libdb-4.8.a
=== Result:
libdb-4.8.a(os_yield.o): In function `__os_yield':
os_yield.c:(.text+0x51): undefined reference to `pthread_yield'
/FALK/sys/ext/lib/libdb-4.8.a(mut_pthread.o): In function
`__db_pthread_mutex_init':
mut_pthread.c:(.text+0x6d): undefined reference to
`pthread_mutexattr_destroy'
mut_pthread.c:(.text+0x106): undefined reference to
`pthread_mutexattr_init'
mut_pthread.c:(.text+0x124): undefined reference to
`pthread_mutexattr_setpshared'
mut_pthread.c:(.text+0x1a1): undefined reference to
`pthread_condattr_setpshared'
[ + more, similar errors ]
Maybe I have to compile Berkeley DB differently?
=== 2:
DBMLIB=-L/custom_path/lib -ldb
=== Result:
Compiles fine, but runs only with LD_LIBRARY_PATH set to
/custom_path/lib, which does not work for setuid-binaries if started
by a non-root user.
Same as 2.
I have used the -Wl,-rpath trick successfully for other programs,
usually it does the job, but not with exim; maybe CFLAGS is used in
some different way or I need to put the flags into another variable?