I have to say, I really liked the idea of FatELF. I'm not terribly surprised at the... er... push-back. We've seen this a lot of times in the past. A number of years ago SGI proposed some patches to use a "spare" 32-bits in a per-thread data structure to hold the GL context pointer. The patches were rejected, and the submitters were flamed. Fast forward a few years (and by I a few I mean 5-ish) we have TLS to store this sort of data in a generic way.
What's the point?
Well, some times someone has the right idea to solve a particular problem. It might not be everyone's problem, and it might not be something we (the "royal" we, of course) want to maintain moving forward. However, it might be something useful and there might be a way to generalize it to make it really useful.
How so?
The first idea that idea had about FatELF was to put multiple versions of a code compiled with optimizations for different targets in the same binary. So, put the -march=i686 and -march=core2 code in the same binary. Yeah, GCC has some features that work sort of like this. Last I tried them, it was a pain in the ass and carried some annoying "caveats".
I would also love a solution to the mixed 32-bit / 64-bit distros. Anyone that thinks /lib and /lib64 (or /lib32 of you're Ubuntu) is a good solution needs a kick in the teeth. Seriously. FatELF isn't a solution "out of the box" for that problem (how do you install a 32-bit library into an existing 64-bit library install) yet, but it doesn't seem like an insurmountable problem.
The difference on Linux is that most software is distributed as source code. If someone wants to use, say, Mosaic as their browser, they just recompile it for their current CPU.
At the same time, there are a lot of use cases where having combined 32-bit / 64-bit is useful:
Well, no. Most software is available as source code, which is how upstream distribute it. But as a practical matter, most software on Linux is distributed as binary packages by Fedora, Ubuntu, and others. Building from source is a somewhat theoretical ability that many people have no interest in doing (and I say that as a LinuxFromScratch user)...
The multilib/bi-arch in Linux is indeed a bad reinvention of the wheel. Solaris has had proper multiarch support for years. Architecture specific files would reside in /usr/lib/${ARCH}