Hi.

;; I learned a little bit.  If I did mistake or say about incorrect
;; thing, told so please. thanks.

>>>>> In <[EMAIL PROTECTED]> 
>>>>>   "J. W. Andersen, ICCC" <[EMAIL PROTECTED]> wrote:

> To make myself a fresh start, I decided to take off with all the
> latest stuff for my mailserver, so I downloaded DB.4.0.14,
> SASL.2.1.1, Postfix.1.1.4 and IMAPD.2.1.2. The first 3 installed
> with no problems.

> With IMAPD, configure and make depend runs OK. When I get to
> make all CFLAGS=-O, I ran into troubles when linking the imapd.
> The errors occus in libcyrus.a(cyrusdb_db3.o), where various functions
> (init, done, myopen etc) reports

> undefined reference to 'db_xxxx_4000'

> where xxxx is version, env_create, strerror and create.
(snip)
> if eval "test \"'echo '$ac_cv_lib_'.............

This function is autoconf's. 

> but regret to say, that I am unable to figure out what it is doing -
> though I have been programming assembler and C for many years, my
> knowledge of Linux scripting language is very limited. If someone
> has the patience to explain that statement to me, maybe I could help
> out myself another time.

> LIBS=" -ldb-4.0 ${LIBS}"

> to force configure to take interest in DB4. It rsulted in almost the same problem at 
>the same spot, althoug the suffix "_4000" now no more occurred in the undefined 
>referenced.

Now, I read about sasl one. I have understood the configure script
made by "autoconf" with the m4 macros. I found that try to find the
db-4.0 routine in aclocal.m4 (<- srcdir/config/sasldb.m4).

;; I write about sasl one as follow, but almost same cyrus-imapd I think.

My case, the routine could not found the db-4.0 from $with_bdb_lib
(--with-bdb-libdr) in AC_CHECK_LIB(). Now I know that this function is
inside of "autoconf".

;; I found the reference of functions in the document attached with
;; autoconf package.

for dbname in db-4.0 db4.0 db-4 ...
 do
  AC_CHECK_LIB($dbname, db_create, SASLBDB_LIB="$BDB_LIBADD -l$dbname";
               dblib="berkeley"; break,
               dblib="no")
 done

This function check into the "variable($dbname)" library about could
found the "function(db_create)", and following commands-list-if-found,
commands-list-ifno-found.

I wandered why this routine could not match my db-4.0 in
/usr/local/BerkeleyDB.4.0/lib/libdb-4.0.a.

I tryed to find "db_create" function in my libdb-4.0.a with emacs
hexl-mode, then I found a few about "db_create_4000"

Then I edited aclocal.m4 at the "db_create" to "db_create_4000" and
save, rm configure, run autoconf for remake the configure script.

I retry to configure cyrus-sasl-2.1.1;

./configure --with-dblib=berkeley \
--with-bdb-libdir=/usr/local/BerkeleyDB.4.0/lib ...

then configure script (AC_CHECK_LIB) found db-4.0.

;; but there is other problem yet..

Thanks.

--
  Shinichiro HIDA  mailto:[EMAIL PROTECTED]
  GPG fingerprint = 5F2D 1656 FFF6 F691 A51C  5E61 E416 D398 470C 1CE9

Reply via email to