[Date Prev][Date Next] [Chronological] [Thread] [Top]

[Fwd: Can't compile OpenLDAP with Berkekey DB: File format not recognized]



>> What arch are you on again? Also, try with 2.4.7.
>
> I don't recall ever seeing any post from ben@fallinganvils.com. Perhaps
> it were best, were you to quote the whole post from OP for cases where
> we mortals have to await the adjudicator's arise from slumber.
>
> Best,
>
> --Tonni
>
> --
> Tony Earnshaw
> Email: tonni at hetnet dot nl
>

See below. It was actually sent to -bugs, but I brought over to -software
for this e-mail.

Gavin.


---------------------------- Original Message ----------------------------
Subject: Can't compile OpenLDAP with Berkekey DB: File format not recognized
From:    ben@fallinganvils.com
Date:    Wed, November 28, 2007 10:41 pm
To:      openldap-bugs@openldap.org
--------------------------------------------------------------------------

This is my first openldap install.

I am installing by compiling from source on a debian box logged in as
myself in my home directory.  Berkeley DB is not installed systemwide. 
LDAP libraries are installed systemwide, but I want to install the whole
openldap tarball in my home directory and use that/run an ldap server etc.
 Only libraries are installed systemwide.  No ldap server software is
installed systemwide.

I do have root access, but I don't think I should need it.

If I can get it installed under /home/ben, after some experimentation,
I'll install it in /home/openldap after creating an openldap user.

I don't know what the debian system uses the ldap libraries it came with
for, but I should be able to use my own local version without dealing with
that I would think.

This is what I do :

1) Install Berkeley DB 4.6.21 in /home/ben/opt/bdb

$ cd db-4.6.21/build_unix
$ ../dist/configure --prefix=/home/ben/opt/bdb
$ make && make install
$ export LD_RUN_PATH=/home/ben/opt/bdb/lib
$ export CPPFLAGS='-I /home/ben/opt/bdb/include'
$ export LDFLAGS='-L /home/ben/opt/bdb/lib'
$ cd

2) Install OpenLDAP
$ cd openldap-2.4.6
$ ./configure --prefix=/home/ben/opt/openldap
$ make depend
$ make

Making all in /home/ben/src/openldap/openldap-2.4.6
  Entering subdirectory include
make[1]: Entering directory `/home/ben/src/openldap/openldap-2.4.6/include'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/ben/src/openldap/openldap-2.4.6/include'

  Entering subdirectory libraries
make[1]: Entering directory `/home/ben/src/openldap/openldap-2.4.6/libraries'
Making all in /home/ben/src/openldap/openldap-2.4.6/libraries
  Entering subdirectory liblutil
make[2]: Entering directory
`/home/ben/src/openldap/openldap-2.4.6/libraries/liblutil'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory
`/home/ben/src/openldap/openldap-2.4.6/libraries/liblutil'

  Entering subdirectory liblber
make[2]: Entering directory
`/home/ben/src/openldap/openldap-2.4.6/libraries/liblber'
/bin/sh ../..//libtool --mode=link cc -static -g -O2  -L
/home/ben/opt/bdb/lib   -o dtest dtest.o liblber.la
../../libraries/liblutil/liblutil.a  -lresolv
cc -g -O2 /home/ben/opt/bdb/lib -o dtest dtest.o 
-L/home/ben/src/openldap/openldap-2.4.6/libraries/liblber
./.libs/liblber.a ../../libraries/liblutil/liblutil.a -lresolv
/usr/bin/ld: /home/ben/opt/bdb/lib: No such file: File format not recognized
collect2: ld returned 1 exit status
make[2]: *** [dtest] Error 1
make[2]: Leaving directory
`/home/ben/src/openldap/openldap-2.4.6/libraries/liblber'
make[1]: *** [all-common] Error 1
make[1]: Leaving directory `/home/ben/src/openldap/openldap-2.4.6/libraries'
make: *** [all-common] Error 1


3) Let's investigate:
$ ls /home/ben/opt/bdb
bin	docs	include	lib
$ ls -l /home/ben/opt/bdb/lib
-rw-r--r-- 1 ben ben 1571838 Nov 28 21:44 libdb-4.6.a
-rw-r--r-- 1 ben ben     813 Nov 28 21:44 libdb-4.6.la
-rwxr-xr-x 1 ben ben 1248813 Nov 28 21:44 libdb-4.6.so
lrwxrwxrwx 1 ben ben      12 Nov 28 21:44 libdb-4.so -> libdb-4.6.so
-rw-r--r-- 1 ben ben 1571838 Nov 28 21:44 libdb.a
lrwxrwxrwx 1 ben ben      12 Nov 28 21:44 libdb.so -> libdb-4.6.so

$ vi libdb-4.6.a

The first bit looks like:

!<arch>
/               1196286289  0     0     0       27970     `
^@^@^E0^@^@m\xea^@^@m\xea^@^@m\xea^@^@m\xea^@^@u"^@^@

Not sure what that means, but someone might...

$ vi libdb-4.so

The first bit looks like:

^?ELF^A^A^A^@^@^@^@^@^@^@^@^@^C^@^C^@^A^@^@^@\xf0i^A^@4^@^@^@x\xde^Q^@^@^@^@^@4^
@ ^@^D^@(^@^_^@^\^@^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@\xe8\x85^Q^@\xe8

Hey! more nonsense, but ELF is familiar and seems like a plausable for a
linux library...




I also get this error with openldap-2.3.39 and db-4.5.20

I could not use openldap-2.3.39 with db-4.6.21 because I get incompatible
version.  The configure scripts looks for db versions 4.2 though 4.5 and
spits out that error otherwise.



Anyway, thanks for any help.