* [gentoo-dev] testing for new versions of db.
@ 2006-02-22 20:46 Paul de Vrieze
0 siblings, 0 replies; only message in thread
From: Paul de Vrieze @ 2006-02-22 20:46 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 2335 bytes --]
Hi all,
* if you don't want the explanation, skip to *********
I believe I have finally found a solution to the problems that plague berkeley
db. While slotting has worked for a long time now, there were serious
problems caused by the fact that db is often used within libraries. Some of
these libraries namely use different db versions, but end up in the same
executable. As a result a symbol collision occurs, and the wrong code is
used. Corrupting the databases.
To this end db-4.{0,1,2}.x use the --with-uniquename hack. This hack appends
some magic string after all symbols and as such makes them unique. This has
various drawbacks, including the fact that many configure scripts do not
expect this. db-4.3 and db-4.4 do not support this hack any longer. It for
example also conflicts with dbxml (also from sleepycat aka oracle).
To solve this I've delved into the ld manual pages, performed some tests and
found that the linker also has a similar uniquename trick, but performs it
much better. It is called symbol versioning, and as long as things go right,
it should be completely transparent. If things go wrong, it will signal it
instead of using the wrong implementations. Symbol versioning can be done by
way of a linking script, but for our purposes much easier, there is a command
line option. This option "--default-symver" will use the soname as the
version of all unversioned symbols (those that have no other version
assigned). This option should be safe to use with almost all libraries, and
might be a solution to some problems with libraries being linked twice
(libstdc++ anyone).
*********
Ok, after the explanation, I would like people to test the change. To this I
would ask people who do not shy away from more or less serious recompiles to
unmask db and merge either db-4.3.29 or db-4.4.20. Both ebuilds should be
stable except for upgrade issues. The new changes should fix that.
If you want to test upgrade issues specifically, be aware that they only occur
when going from db-4.3 to db-4.4 as db-4.2 still uses the uniquename hack.
Thanks,
Paul
ps. Openldap people, the sooner you test, the sooner you get a new db
version :-P
--
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-02-22 20:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-22 20:46 [gentoo-dev] testing for new versions of db Paul de Vrieze
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox