[redland-dev] configure can't find bdb?

Dave Beckett dave at dajobe.org
Tue Mar 14 03:24:58 GMT 2006


Eric Hanson wrote:
> Dave Beckett wrote:
> 
>> Eric Hanson wrote:
...

> Tried adding 4.4 to this line and ended up with:
> 
> ./configure --prefix=/disk/mapserverdb/redland --with-/lib
> --with-bdb-include=/disk/mapserverdb/bdb/include
> --with-bdb=/disk/mapserverdb/bdb
> 
> checking BDB version... unknown
> checking location of BDB libs... /disk/mapserverdb/bdb/lib
> checking location of BDB includes... /disk/mapserverdb/bdb/include
> checking name of BDB library... db-4.4
> checking db.h usability... yes
> checking db.h presence... yes
> checking for db.h... yes

so cpp works as it can find the header

> checking for BDB V1 dbopen... no
> checking for BDB V2 db_open... no
> checking for BDB V3/V4.x db_create... yes
> checking for BDB V4.0 DB->open with 6 arguments... no
> checking for BDB DB->close with 2 arguments... yes
> checking for BDB DB->fd with 2 arguments... yes
> checking for BDB DB->set_flags... yes
> checking for BDB V4.1+ DB->open with 7 arguments... yes

and compiling works

> checking whether DB_TXN defined in db.h... yes
> checking whether DBC defined in db.h... yes
> 
> 
> Redland build summary:
>   Berkeley/Sleepycat DB   : Version unknown (library db-4.4 in
> /disk/mapserverdb/bdb/lib)

That means success.  It can't tell the version when you specify the
arguments.

>   Triple stores available : file hashes(memory) hashes(bdb unknown)
> mysql(4.1.10) postgresql(8.0.3)
>   Triple stores enabled   : memory file hashes mysql postgresql
>   RDF parsers             : raptor(internal)
>   RDF query               : rasqal(internal)
>   Content digests         : md5 sha1

So this should compile.

Assuming that /disk/mapserverdb/bdb/lib is in your system shared library
link path - see man ld.so or cat /etc/ld.so.conf (linux, others)

> Also, I tried specifying bdb-name with 4.1 as follows:
> 
> [path]
> /disk/mapserverdb/postgresql/bin:/disk/mapserver/php5/bin:/disk/mapserverdb/bdb/bin:...
> 
> 
> [ld_library_path (is this being used?)]
> mapserve:~/db/source/redland-1.0.3:513 > echo $LD_LIBRARY_PATH
> /disk/mapserverdb/bdb/lib:/disk/mapserverdb/postgresql/lib:...
> 
> 
> [contents of bdb lib directory]
> mapserve:~/db/source/redland-1.0.3:497 > ls /disk/mapserverdb/bdb/lib
> libdb-4.1.a  libdb-4.1.la  libdb-4.1.so  libdb-4.so  libdb.a  libdb.so
> mapserve:~/db/source/redland-1.0.3:498 >
> 
> [configure string]
> ./configure --prefix=/disk/mapserverdb/redland
> --with-bdb-lib=/disk/mapserverdb/bdb/lib
> --with-bdb-include=/disk/mapserverdb/bdb/include --with-bdb-name=db-4.1
> --with-bdb=/disk/mapserverdb/bdb
> 
> [output]
> 
> ...
> checking BDB version... unknown
> checking location of BDB libs... /disk/mapserverdb/bdb/lib
> checking location of BDB includes... /disk/mapserverdb/bdb/include
> checking name of BDB library... db-4.1
> checking db.h usability... yes
> checking db.h presence... yes
> checking for db.h... yes

cpp works

> checking for BDB V1 dbopen... no
> checking for BDB V2 db_open... no
> checking for BDB V3/V4.x db_create... no
> checking for BDB V4.0 DB->open with 6 arguments... no
> checking for BDB DB->close with 2 arguments... no
> checking for BDB DB->fd with 2 arguments... no
> checking for BDB DB->set_flags... no
> checking for BDB V4.1+ DB->open with 7 arguments... no
> checking whether DB_TXN defined in db.h... no
> checking whether DBC defined in db.h... no

and compiling doesn't.

> ...

so that tends to suggest that the -ldb-4.1 name is wrong in this case,
the config.log should record what failed when it tried to do the above
linking tests which all failed.

I remember something wierd like this once with SGI IRIX or something
where you had to add extra linking lines for threads in order to get BDB
to work (as it was compiled with those flags).  There's no good way to
test for this without adding another compile test.  config.log should
explain all.

You see why bdb-config --libs, bdb-config --cflags would be *so* much nicer?

Dave


More information about the redland-dev mailing list