Support > General Discussions

ISAM - An appeal

<< < (2/3) > >>

Support:
I got a little farther with the following change to interface.c for the BDB extension module.


--- Code: C ---//  X("bdb.limits.mp_size"    ,mp_size)  X("bdb.limits.mp_size"    ,set_cachesize) 

jrs@jrs-laptop:~/sb/source/extensions/bdb$ make -B
gcc -O2 -w -m64 -fPIC -DSTATIC_LINK=1 -c -o /home/jrs/sb/source/bin/mod/obj/bdb/s_interface.o interface.c
ar -r /home/jrs/sb/source/bin/mod/lib/bdb.a /home/jrs/sb/source/bin/mod/obj/bdb/s_interface.o
gcc -O2 -w -m64 -fPIC -c -o /home/jrs/sb/source/bin/mod/obj/bdb/interface.o interface.c
ld -shared -fPIC -o /home/jrs/sb/source/bin/mod/dll/bdb.so /home/jrs/sb/source/bin/mod/obj/bdb/interface.o /usr/lib/libdb.a
ld: /usr/lib/libdb.a(db_method.o): relocation R_X86_64_32S against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib/libdb.a: error adding symbols: Bad value
makefile:13: recipe for target '/home/jrs/sb/source/bin/mod/dll/bdb.so' failed
make: *** [/home/jrs/sb/source/bin/mod/dll/bdb.so] Error 1
jrs@jrs-laptop:~/sb/source/extensions/bdb$


This looks to me that the BerkleyDB db_method  needs a Makefile change to work as a shared object.

I have spent as much time as I can on this and will leave it in AlyssonR's hands to unravel.

Support:
It seems the trick to get it to compile is using the -ldb-6.2 not -ldb which seems to be a static version.

I'm trying to find a Script BASIC example script to test with but may need to start from scratch. On a positive note the bdb include file loaded without error.

AlyssonR:
Interesting. I may end up using BerkleyDB as a fallback position.

I have managed to get about 75% of the ISAM specification put together. Most of the logic is fairly simple and I will probably have an alpha of the basic functionality put together by the end of January. Having had a bit of a play already, it will probably go together in under 3000 lines of code without the added bells and whistles, or the toolset.

The use of scopeing, flexible arrays and those nifty break to array functions make the whole thing pretty simple compared with the stuff of the early 80's.

I may take a look at the BerkleyDB source, but I really am running shy of using that approach now.

I'll get back with progress and development documentation once things are settled (in between writing a couple of papers for publication. Sheesh!)

Support:
I was hoping to get the BerkleyDB extension module running again but with it returning to a console prompt with a bdb::Open() call with no error or reason makes me think my decision to drop it was a good one. Same with PostgreSQL.

AlyssonR:
OUCH! :o

That wasn't even a consideration when I was making the decision to roll my own.

At least with my approach, it will be guaranteed operable with SB as a local file process rather than depending upon an external service.

Thanks for trying, though - it IS appreciated.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version