From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1NATqy-0000he-0C for garchives@archives.gentoo.org; Tue, 17 Nov 2009 19:36:40 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2656EE0801; Tue, 17 Nov 2009 19:35:51 +0000 (UTC) Received: from mail.informasoftware.com (mail.informasoftware.com [66.193.169.4]) by pigeon.gentoo.org (Postfix) with ESMTP id EB8E9E0801 for ; Tue, 17 Nov 2009 19:35:50 +0000 (UTC) Received: from [192.168.100.74] ([192.168.100.74] RDNS failed) by mail.informasoftware.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 17 Nov 2009 14:35:50 -0500 Message-ID: <4B02FB14.1040808@kutulu.org> Date: Tue, 17 Nov 2009 14:35:48 -0500 From: Mike Edenfield User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.4pre) Gecko/20090915 Thunderbird/3.0b4 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-Version: 1.0 To: gentoo-user@lists.gentoo.org Subject: Re: [gentoo-user] Downgrade glibc-2.11 to 2.10 References: <200911171806.45373.alan.mckinnon@gmail.com> In-Reply-To: <200911171806.45373.alan.mckinnon@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 17 Nov 2009 19:35:50.0340 (UTC) FILETIME=[2B1ED040:01CA67BD] X-Archives-Salt: 2839d27c-738f-4cec-9e31-c27129b40a68 X-Archives-Hash: f43d2940f21e6afe81b66a5dc14dd71b On 11/17/2009 11:06 AM, Alan McKinnon wrote: > Yes, I have read this in > /var/portage/sys-libs/glibc/files/eblits/pkg_setup.eblit > and I understand the risks. > > if has_version '>'${CATEGORY}/${PF} ; then > eerror "Sanity check to keep you from breaking your system:" > eerror " Downgrading glibc is not supported and a sure way to destruction" > die "aborting to save your system" > fi > > I want to do it anyway. I have never done this on a package-managed system but I did have to downgrade glibc on a slackware system once. It's very VERY ugly; all kinds of implementation details get exposed as special symbols, or new symbol versions, or whatever, that make going backwards a mess. The way I was told to do it was to get a compiled copy of lower glibc version into an alternative install path, like /usr/local/glibc, and rebuild everything against that copy. You could have emerge build 2.10 into an alternative --root, or go get a binary package of 2.10 and uncompress it somewhere. Then update CFLAGS and LDFLAGS to include the correct -L and -I parameters pointing to /usr/local/glibc/{lib,usr/lib,include}. When I did it, I rebuilt everything on my system twice, just to be safe. First time through, you build against the extra copy of glibc, including building a downgraded glibc in the proper system location, and having the build tools link to the correct lower version. Then you remove the CFLAGS/LDFLAGS and rebuild everything again, this time against the downgraded version in the correct location, and then you can remove your extra copy. I'm not entire positive that second one was strictly necessary but it worked. Or you can just back up your data and reinstall :) > A multitude of apps that used to run just fine now give "free(): invalid > pointer" errors since I upgraded to glibc-2.11 Make sure you file bug reports on these. The programs are probably doing buggy things that glibc used to be rather forgiving about. I believe in 2.11 they added extra checks to the memory management used by C++ programs, though I don't know specifics. This would catch things like using delete where they meant delete[], or free() on something allocated with new. The standard says the behavior of this type of operation is undefined, so glibc is technically free to do "anything it wants". Unfortunately, when glibc is nice and make that "anything" be "what you wanted it to do anyway" it encourages people do keep doing bad things, thus the ever-increasing strictness of the library. --Mike