This forum has been archived. Please start a new discussion on GitHub.

something about BerkeleyDB

We will develop a set of middleware on AMD64+suse sles8.0 in one month. We choose ice to support this project, but now we meet a problem about db.
We know maybe this is not your work but we need your help really.

We have tried several db versions to resolve it,
1. db-4.2.52
We build it but at last
/usr/lib/../lib64/crti.o: In function `_init':
/tmp/ccZWpbY5.s:26: multiple definition of `_init'
/usr/lib/../lib64/crti.o:/tmp/ccZWpbY5.s:26: first defined here
/usr/lib/../lib64/crti.o: In function `_fini':
/tmp/ccZWpbY5.s:26: multiple definition of `_fini'
/usr/lib/../lib64/crti.o:/tmp/ccZWpbY5.s:26: first defined here
/opt/gcc33/lib64/gcc-lib/x86_64-suse-linux/3.3/crtbeginS.o(.data.rel+0x0): multiple definition of `__dso_handle'
/opt/gcc33/lib64/gcc-lib/x86_64-suse-linux/3.3/crtbeginS.o(.data.rel+0x0): first defined here
collect2: ld returned 1 exit status

I ever built it on linux-32bit, it works very well.

2. db-4.3.27
we build it successfully and build ice-2.1.0 with it successfully too. But when I run "make test", it says"./test/Freeze/dbmap failed with exit status 256". In all the tests of Freeze.
Then when I run ./demo/IcePack/simple ,icepacknode always report"segmentation defualt" here and there randomly.

I ever tried to copy db-4.2 from linux-32bit to present host and built ice-2.1 with 32 option, but it didn't work either.
Our design is based on ice and the project is on the way .This problem really makes us in trouble. We can not make sure "db-4.3+ice2.1" will work dependably.

Thank you!


  • marc
    marc Florida
    I also have SuSE Linux for AMD64 on my computer:
    fx53:~$ uname -a
    Linux fx53 2.6.5-7.108-default #1 Wed Aug 25 13:34:40 UTC 2004 x86_64 x86_64 x86_64 GNU/Linux
    I don't get any linker errors, neither in 32bit nor in 64bit mode. I use db-4.2.52, which I compiled myself.
  • bernard
    bernard Jupiter, FL
    It could be a problem with your GCC build (installed in /opt/gcc33).
    I would recommend to try on a fresh "SuSE SLES 8.0", with the SuSE-provided GCC compiler.

  • Our SUSE version is
    Linux dbnode00 2.4.19-SMP #1 SMP Mon Mar 31 23:48:08 UTC 2003 x86_64 unknown

    We update gcc3.2 to 3.3 because of occi and modified other development tools. Now I will re-install the system and rebuild them.
    Wait for the result.
  • Is OS kenel version too old to support them?
  • bernard
    bernard Jupiter, FL
    2.4.19 is indeed quite old. The oldest Linux officially supported with Ice 2.1 ( is RedHat 9 -- kernel 2.4.20 I believe.

  • But our anther host-32bit is
    Linux version 2.4.18-14smp ( (gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)) #1 SMP Wed Sep 4 12:34:47 EDT 2002
    it works well.

    Is it the difference between 32bit and 64bit?
  • benoit
    benoit Rennes, France
    From similar reports found with Google (search for "multiple __dso_handle amd64" on Google), it sounds like a problem with the libtool script (it's generated with the BerkeleyDB configure script.)

    From your report -- it sounds like this might have been fixed in the latest BerkeleyDB configure script.

    It's difficult to say however why you're getting runtime errors such as segmentation faults with the IcePack processes when you use BerkelyDB 4.3.27, this might be for other reasons (old libc perhaps?)... if you send us the stack traces of the crash we might be able to figure out where it's coming from (make sure to compile Ice with debug information, i.e.: no optimization!).

    Of course, I would recommend to also consider upgrading your machine to a more recent OS version, it's quite possible that the 64 bits support is more stable these days :)