I noticed that the .asd file has a line:
#-(or linux) (list (format nil "-l~A" (get-db-name c)))))
To keep linux builds from adding the library link command ( get-db-
name will extract the db-4.5 or
db45 name of the BDB library that you provide in the
configuration ). I don't remember why this was put in and am not a
regular user of linux. If you remove the reader conditional, does it
work for you?
Ian
On May 5, 2007, at 2:30 AM, Lui Fungsin wrote:
Hi Ian,
Congrats on the 0.9 RC1 release.
Good news : the MOP error is gone with elephant 0.9
Now I can successfully do all these:
(asdf:operate 'asdf:load-op :elephant)
(asdf:operate 'asdf:load-op :ele-bdb)
(asdf:operate 'asdf:load-op :elephant-tests)
(in-package :ele-tests)
(setf *default-spec* *testbdb-spec*)
Bad news is that I still can't get elephant to work out of the box:
ELE-TESTS 8 > (do-backend-tests)
lispworks-5-0-0-x86-linux: symbol lookup error:
src/db-bdb/libberkeley-db.so: undefined symbol: db_env_create
;; lispworks exits abnormally
So I spent sometime to diagnose this. Here're my findings:
I went through the asdf compilation log and found that this looks
suspicious:
$ gcc -L/usr/local/BerkeleyDB.4.5/lib/
-I/usr/local/BerkeleyDB.4.5/include/ -shared -fPIC -Wall -O2 -g
src/db-bdb/libberkeley-db.c -o src/db-bdb/libberkeley-db.so -lm
$ ldd src/db-bdb/libberkeley-db.so
linux-gate.so.1 => (0x009fb000)
libm.so.6 => /lib/libm.so.6 (0x00110000)
libc.so.6 => /lib/libc.so.6 (0x00db5000)
/lib/ld-linux.so.2 (0x0085f000)
I then recompiled the file with a -ldb flag
$ gcc -L/usr/local/BerkeleyDB.4.5/lib/
-I/usr/local/BerkeleyDB.4.5/include/ -shared -fPIC -Wall -O2 -g
src/db-bdb/libberkeley-db.c -o src/db-bdb/libberkeley-db.so -lm -ldb
$ export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.5/lib/
$ ldd src/db-bdb/libberkeley-db.so
linux-gate.so.1 => (0x00d71000)
libm.so.6 => /lib/libm.so.6 (0x00d43000)
libdb-4.5.so => /usr/local/BerkeleyDB.4.5/lib/libdb-4.5.so
(0x00918000)
libc.so.6 => /lib/libc.so.6 (0x00b43000)
/lib/ld-linux.so.2 (0x0085f000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00f9c000)
After that lispworks successfully ran (do-backend-tests) and passed
all the tests.
How do you get it to work without these tweaks?
fungsin
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel