Matthias Klose <[EMAIL PROTECTED]> writes: > Rumour says, that there will be one more C++ ABI change to fix bugs > found after the gcc-3.2 release (maybe for gcc-3.4), and then the C++ > ABI will be stable ...
I believe this is a misprediction of the future. Here is my prediction: 1. The "core" ABI of g++ (i.e. how to layout objects, mangle symbols, perform exception handling, etc) is already "stable" in the sense it won't change for "most" applications. 2. Bugs in that core ABI may be discovered from time to time (even after 3.4). It is likely that few applications are affected by the bugs. If the bugs get fixed, an ABI breakage will occur for those few applications. g++ will offer a warning if a program uses constructs that cause that breakage. 3. None of the bugs that have been already fixed for 3.4 triggers for the C++ code that ships with GCC itself (i.e. libstdc++). So even if the bugs get fixed, recompiling the current libstdc++ won't cause an ABI breakage. 4. OTOH, libstdc++ is likely to change with each compiler release; the ABI of that library is not yet stable. It is, unfortunately, quite easy to break that ABI - instantiating a template more or less in some implementation file already breaks the ABI. It is also quite difficult to detect such breakage automatically; one has to compare the header files to find out whether the changes introduced cause ABI breakage or not. Regards, Martin