Gentoo Logo
Gentoo Spaceship

Installation:
Gentoo Handbook
Installation Docs

Documentation:
Home
Listing
About Gentoo
Philosophy
Social Contract

Resources:
Bug Tracker
Developer List
Discussion Forums
Gentoo BitTorrents
Gentoo Linux Enhancement Proposals
IRC Channels
Mailing Lists
Mirrors
Name and Logo Guidelines
Online Package Database
Security Announcements
Staffing Needs
Supporting Vendors
View our CVS

Graphics:
Logos and themes
Icons
ScreenShots

Miscellaneous Resources:
Gentoo Linux Store
Gentoo-hosted projects
IBM dW/Intel article archive




List Archive: gentoo-dev
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-dev@g.o
From: flameeyes@... (Diego 'Flameeyes' Pettenò)
Subject: Re: RFC: Should preserve-libs be enabled by default?
Date: Thu, 29 May 2008 11:02:55 +0200
Marius Mauch <genone@g.o> writes:

> Also it is not going to be a perfect solution against all runtime link
> errors, but if enabled it should eliminate the need for revdep-rebuild
> in most cases.

I'm afraid that it will turn, for complex libraries like libexpat and
users not using --as-needed, the message telling you the program cannot
be started with subtle crashes for symbol collision.

preserve-libs would be quite perfect if all libraries out there used
versioned symbol, but this is far from true (and some systems Gentoo
runs on don't even consider versioned symbol to begin with).

Example at hand? When the libexpat transition started, the choice of
keeling .so.0 around with .so.1 was discarded right away because:

- library libfoo links to libexpat;
- program bar links to libfoo;
- user is not using --as-needed, so bar has a NEEDED against both libfoo
  and libexpat;
- user rebuilds libfoo, but not bar; or bar and not libfoo, the result
  is the same;
- KABOOM! symbol collision and bar crashes.

As much as we want preserve-libs to be an all-curing magic, it's
not. When you need to replace a library you need to do so _for all its
users at once_, if you allow it to be gradually you're opening the
hellgate of symbol collision.

My solution would be to disallow _building_ anything that is or depends
directly or indirectly on a package on the set until it is removed, or
at the request of merging "mickeymouse", depending on "bar", re-emerging
libfoo first, and bar if the user is not using --as-needed (checking the
NEEDED lines).

With all due respect to everybody, the right course of action here has
to be selected by people who knows how the runtime linker works, symbol
collision and all the rest, as that's what's at stake here.

-- 
Diego "Flameeyes" Pettenò
http://blog.flameeyes.eu/
Attachment:
pgpWgEwAh4bEa.pgp (PGP signature)
Replies:
Re: Re: RFC: Should preserve-libs be enabled by default?
-- Marius Mauch
References:
RFC: Should preserve-libs be enabled by default?
-- Marius Mauch
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Re: RFC: Should preserve-libs be enabled by default?
Next by thread:
Re: Re: RFC: Should preserve-libs be enabled by default?
Previous by date:
Re: RFC: Should preserve-libs be enabled by default?
Next by date:
Re: RFC: Should preserve-libs be enabled by default?


Updated Jun 17, 2009

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Email www@gentoo.org.