public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [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