So, I know that an ABI for C++ would allow for a lot of nice things (e.g. pre-built libraries getting and returning smart pointers without fear of crashing and burning.)
Now, I realize that an ABI is a very-far-from-trivial thing, but - after 30 years of C++, and 25 years of C++ on 32-bit x86, how come there's not even a de-facto ABI standard for x86 (and x86_64) platforms?
Edit: More concretely, I'll limit the question the technical, rather than social and political, obstacles preventing the adoption of more-or-less uniform ABIs.