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

Re: libdb transition policy?

* Andreas Barth:

> Why that? It would only affect packages that (correctly or wrongly) also
> depend on libdb4.2. (And libdb4.2 unfortunatly doesn't have versioning,
> otherwise, it wouldn't be any issue; lidb4.3 and libdb4.4 are better in
> that regard.)

Berkeley DB 4.2 was compiled such that every exported symbol ends with
"_4002".  Have a look at:

  $ readelf -sW /usr/lib/libdb-4.2.so  | grep -v _4002

This means that even though it does not use symbol versioning, it can
coexist with other versions in the same process image.

However, contrary to what the NM templates suggest, symbol versioning
is not a cure-all for all ABI incompatibilities.  If libetpan returns
a DB_ENV * in its API, you need to port[1] all its dependencies to the
new Berkeley DB version.

[1] A simple recompilation may not be enough because a new Berkeley DB
    version usually changes the API in slight ways.

Reply to: