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