&gt; Something C++ could have done at any time<p>It could have, but a standardised ABI is a terrible idea. Once you commit to an ABI you&#x27;re stuck with the tradeoffs you make. If C++ had specified a stable ABI 20 years ago, we&#x27;d all be using setjmp and longjmp for exceptions, and small string optimisations and such would be impossible.<p>I don&#x27;t really see the big deal tbh. C++ code compiled with GCC was ABI stable between GCC 3.4 (Apr 2004) and GCC 4.9 (Apr 2014), and you can still use use the -fabi-version switch today to generate code against older ABIs. Hell, libstdc++v5 (shipped with GCC 3.3) is still packaged for most distributions.