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

Re: DB3 symbol collisions solved...

On Wed, Nov 15, 2000 at 08:19:05PM +1100, Herbert Xu wrote:
> Ben Collins <bcollins@debian.org> wrote:
> >
> > 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,
> If I understood this correctly, this means that anything that's compiled
> against libdb3-dev and (say) a libsasl7-dev that was linked against
> libdb2-dev, will end up just using libdb2.  Is this really OK for all
> programs, considering that the soname usually isn't changed unless the ABI
> changes as well?

Uh no, you are completely incorrect. If you compile against db3, you will
be using db3. The symbols that were common between db2 and db3 are changed
in the *runtime* db3 library, to avoid clashing with db2's symbols. So it
will actually use those db3 symbols (thanks to some weak aliasing in the
runtime lib).

However, to keep things binary compat, the link library (libdb.so in
libdb3-dev) is a normal db3 library, without the symbol trickery. This
avoids problems where Debian compiled apps wont run on anything other than

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

Reply to: