This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] ARM: Use different linker path for hardfloat ABI
- From: "Michael K. Edwards" <m dot k dot edwards at gmail dot com>
- To: Mike Frysinger <vapier at gentoo dot org>
- Cc: cross-distro at lists dot linaro dot org, Jeff Law <law at redhat dot com>, Jakub Jelinek <jakub at redhat dot com>, Adam Conrad <adconrad at debian dot org>, Richard Earnshaw <rearnsha at arm dot com>, Andrew Haley <aph at redhat dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 11 Apr 2012 10:21:58 -0700
- Subject: Re: [PATCH] ARM: Use different linker path for hardfloat ABI
- References: <20120403110140.GG16117@tyan-ft48-01.lab.bos.redhat.com> <4F83CDAD.50405@redhat.com> <4F8463F9.8080000@gmail.com> <201204102315.37129.vapier@gentoo.org>
- Reply-to: M dot K dot Edwards at gmail dot com
On Tue, Apr 10, 2012 at 8:15 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> On Tuesday 10 April 2012 12:46:49 Michael Edwards wrote:
>> That way I can grandfather in binaries with ABI-ignorant
>> hard-coded library paths, and still handle ISA variants. ?The
>> "extranoise" might be "neon", or "ssse3"
>
> aren't ISA variants handled already by glibc ? ?that's what the hwcaps stuff
> does -- you can put optimized versions in ISA-specific subdirs of the normal
> lib paths. ?glibc will look for those first before falling back to the common
> libs.
> -mike
I stand corrected with regard to non-ABI-altering ISA variations --
except for the nightmare that is Bionic libc, which is out of scope
for the present discussion. Googling reminds me that Ulrich covered
all this ground in his original document for Linaro (which appears to
have moved onto the Debian wiki as
http://wiki.debian.org/Multiarch/LibraryPathOverview).
So this really is about nothing but freezing the full ABI name (vs. a
two-character suffix) into the path to ld.so. And, of course, the
implied commitment to resolve any residual ambiguities in the ABI
(__cxa_pure_virtual(), anyone?) and to prioritize spec conformance
over bug-for-bug compatibility
(https://bugs.launchpad.net/gcc-linaro/+bug/952565). When you give
something a detailed name, people are more likely to assume that it
has a detailed spec, interchangeable among distros and over time. For
better or for worse, perpetuating the /lib?? kludge doesn't give that
impression.
Cheers,
- Michael