[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

beating a dead DB horse

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2002-07-08 21:06:29 CEST

So my development box is FreeBSD 4.5-STABLE. I have the db4 port
installed, which places db4 into

  /usr/local/lib/libdb4.so
  /usr/local/include/db4/*.h

Meanwhile, older versions of BDB (part of the base system) are lying
around as

  /usr/local/lib/libdb.so
  /usr/include/db.h

AFAICT, our BerkeleyDB autoconf tests just aren't working for me
anymore. Many months ago, they were only able to find my older db
libraries, and ./configure would then refuse to build libsvn_fs. I
worked around the problem by renaming /usr/include/db.h to
/usr/include/was_db.h. This didn't seem to mess up my system, and the
autoconf test was happy again. It found db4 in the "special" freebsd
locations correctly.

Over the weekend, I had to restore /usr/include/db.h to make gnome2
compile.

Now, when I run svn's ./configure, it tells me

   checking for built-in Berkeley DB... no
   checking for Berkeley DB in the standard places... yes

And config.log shows:

configure:7531: checking for built-in Berkeley DB
configure:7541: result: no
configure:7616: checking for Berkeley DB in the standard places
configure:7662: gcc -o conftest -g -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -D_REENTRANT -D_THREAD_SAFE -L/usr/local/lib conftest.c -lm -lcrypt -ldb >&5
configure:7638: warning: return-type defaults to `int'
configure: In function `main':
configure:7641: warning: implicit declaration of function `db_version'
configure:7665: $? = 0
configure:7667: ./conftest
configure:7670: $? = 0
configure:7689: result: yes

This is waaaaay wrong. First of all, notice that it's trying to link
against -ldb, not -ldb4. Fine, so be it; but the binary should
eventually fail. But apparently libdb.so on my system doesn't have
db_version() at all?? That's what the warning seems to imply. I
can't believe this... since this is the *main* way in which we detect
the correct version of db. And how on earth does the test binary
return exit status 0, then, rather than failure?

In any case, this is a false positive happening, even when linked to a
bogus library. Later on, when it tries to compile libsvn_fs, it bombs
out while using the wrong header file and lib.

Can anyone shed light on this problem?

(In the meantime, if I rename /usr/include/db.h again, then our
ac-helper correctly finds db4 in the 'standard' freebsd location:

  checking for built-in Berkeley DB... no
  checking for Berkeley DB in the standard places... no
  checking for Berkeley DB in /usr/local/include/db4 and /usr/local/lib... yes
)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jul 8 21:11:28 2002

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.