[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

DB3 symbol collisions solved...



After much hacking, I have solved the problem with db3 clashing symbols
with db2. I'll probably upload tomorrow, here's a snip from README.Debian
for the interested. This means that there is no worry about having db2 and
db3 intermixed in a link chain (as would be the case for a lot of things
if even a single program/library started using it and this hack wasn't
used).

-------
Note About Runtime Library:
-------

Because db2 and db3 (and several other db libraries) share some common
symbols, it is usually very bad when more than one is loaded via a link
chain (e.g. program foo is linked to libdb3 and libbar, which in turn is
linked to libdb2). These common symbols clash and usually cause the program
to eventually crash (most of the time immediately).

To avoid this, the standard symbols in the runtime library are weak aliases
to non-clashing, custom symbols. This means that Debian compiled packages,
aswell as third party apps, can run without worry of this symbol
collision.

In the meantime, the linkable (libdb.so) library in the libdb3-dev package
is not a symlink to the runtime library, but the actual standard library,
complete with standard symbols. This ensures that applications and
packages compiled with Debian's db3 will also run on other systems (of the
same architecture of course :). In otherwords, we have not lost
binary-compatibility.

For details of this build setup, see the source package.


-- 
 -----------=======-=-======-=========-----------=====------------=-=------
/  Ben Collins  --  ...on that fantastic voyage...  --  Debian GNU/Linux   \
`  bcollins@debian.org  --  bcollins@openldap.org  --  bcollins@linux.com  '
 `---=========------=======-------------=-=-----=-===-======-------=--=---'



Reply to: