From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from pigeon.gentoo.org ([69.77.167.62] helo=lists.gentoo.org)
	by finch.gentoo.org with esmtp (Exim 4.60)
	(envelope-from <gentoo-dev+bounces-30787-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1K1e2v-0001AO-3v
	for garchives@archives.gentoo.org; Thu, 29 May 2008 09:03:41 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id BF48DE0320;
	Thu, 29 May 2008 09:03:19 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	by pigeon.gentoo.org (Postfix) with ESMTP id 72F34E0320
	for <gentoo-dev@lists.gentoo.org>; Thu, 29 May 2008 09:03:19 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
	by smtp.gentoo.org (Postfix) with ESMTP id 02AA66421F
	for <gentoo-dev@lists.gentoo.org>; Thu, 29 May 2008 09:03:19 +0000 (UTC)
X-Virus-Scanned: amavisd-new at gentoo.org
X-Spam-Score: -2.909
X-Spam-Level: 
X-Spam-Status: No, score=-2.909 required=5.5 tests=[AWL=0.690,
	BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from smtp.gentoo.org ([127.0.0.1])
	by localhost (smtp.gentoo.org [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id t2j4xShV+Lzr for <gentoo-dev@lists.gentoo.org>;
	Thu, 29 May 2008 09:03:12 +0000 (UTC)
Received: from ciao.gmane.org (main.gmane.org [80.91.229.2])
	(using TLSv1 with cipher AES256-SHA (256/256 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTP id CD699671C6
	for <gentoo-dev@gentoo.org>; Thu, 29 May 2008 09:03:09 +0000 (UTC)
Received: from list by ciao.gmane.org with local (Exim 4.43)
	id 1K1e2M-0003gP-7w
	for gentoo-dev@gentoo.org; Thu, 29 May 2008 09:03:06 +0000
Received: from adsl-ull-220-41.48-151.net24.it ([151.48.41.220])
        by main.gmane.org with esmtp (Gmexim 0.1 (Debian))
        id 1AlnuQ-0007hv-00
        for <gentoo-dev@gentoo.org>; Thu, 29 May 2008 09:03:06 +0000
Received: from flameeyes by adsl-ull-220-41.48-151.net24.it with local (Gmexim 0.1 (Debian))
        id 1AlnuQ-0007hv-00
        for <gentoo-dev@gentoo.org>; Thu, 29 May 2008 09:03:06 +0000
X-Injected-Via-Gmane: http://gmane.org/
To: gentoo-dev@lists.gentoo.org
From:  flameeyes@gmail.com (Diego 'Flameeyes' =?utf-8?Q?Petten=C3=B2?=)
Subject: [gentoo-dev]  Re: RFC: Should preserve-libs be enabled by default?
Date:  Thu, 29 May 2008 11:02:55 +0200
Message-ID:  <m2k5hdh48w.fsf@gmail.com>
References:  <20080529011316.54f0f1f6@sheridan.genone.homeip.net>
Precedence: bulk
List-Post: <mailto:gentoo-dev@lists.gentoo.org>
List-Help: <mailto:gentoo-dev+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-dev+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-dev+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-dev.gentoo.org>
X-BeenThere: gentoo-dev@lists.gentoo.org
Reply-to: gentoo-dev@lists.gentoo.org
Mime-Version:  1.0
Content-Type:  multipart/signed; boundary="=-=-=";
	micalg=pgp-sha1; protocol="application/pgp-signature"
X-Complaints-To: usenet@ger.gmane.org
X-Gmane-NNTP-Posting-Host: adsl-ull-220-41.48-151.net24.it
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)
Cancel-Lock: sha1:YOPByoRjmccr908yc0nr7i7DyS0=
Sender: news <news@ger.gmane.org>
X-Archives-Salt: d228abc4-0b2c-4f53-9ef1-444a28cda208
X-Archives-Hash: 26ec9e9a6ffc3af72002774c750ef203

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Marius Mauch <genone@gentoo.org> 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:

=2D library libfoo links to libexpat;
=2D program bar links to libfoo;
=2D user is not using --as-needed, so bar has a NEEDED against both libfoo
  and libexpat;
=2D user rebuilds libfoo, but not bar; or bar and not libfoo, the result
  is the same;
=2D 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.

=2D-=20
Diego "Flameeyes" Petten=C3=B2
http://blog.flameeyes.eu/

--=-=-=
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAkg+cUAACgkQe2h1+2mHVWP5NwCeKv4W+Uflv4DKjPnasegt7Pme
h6oAmwRTwYJemSej6H+Ww2HLbGiAv1wh
=qLdV
-----END PGP SIGNATURE-----
--=-=-=--

-- 
gentoo-dev@lists.gentoo.org mailing list