C++ ABI for C++ standards with full support by GCC (rather than those marked as experimental per https://gcc.gnu.org/projects/cxx-status.html) should be stable. It's certainly not the case in 2025 that one needs a full world rebuild for C++ libraries using e.g. the default standard or any other supported standard by C++, unless it is marked experimental where we provide no guarantees. --- Changed the <em>...</em> text to a suggestion from Jason on IRC.
Pushed. htdocs/bugs/index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/bugs/index.html b/htdocs/bugs/index.html index c4907c38..c7c040e8 100644 --- a/htdocs/bugs/index.html +++ b/htdocs/bugs/index.html @@ -647,14 +647,14 @@ GCC maintains a 'Porting to' resource for new versions: components: the first defines how the elements of classes are laid out, how functions are called, how function names are mangled, etc; the second part deals with the internals of the objects in libstdc++. -Although we strive for a non-changing ABI, so far we have had to -modify it with each major release. If you change your compiler to a -different major release <em>you must recompile all libraries that -contain C++ code</em>. If you fail to do so you risk getting linker -errors or malfunctioning programs. -It should not be necessary to recompile if you have changed -to a bug-fix release of the same version of the compiler; bug-fix -releases are careful to avoid ABI changes. See also the +For C++ standards marked as +<a href="https://gcc.gnu.org/projects/cxx-status.html">experimental</a>, +stable ABI is not guaranteed: for these, if you change your compiler to a +different major release <em>you must recompile any libraries that were built +using a C++ -std= flag that was still experimental</em>. If you fail +to do so, you risk getting linker errors or malfunctioning programs. +It should not be necessary to recompile for C++ standards supported fully +by GCC, such as the default standard. See also the <a href="https://gcc.gnu.org/onlinedocs/gcc/Compatibility.html">compatibility section</a> of the GCC manual.</p> base-commit: 745430b2e92b32951dcd7e8572d5e54e189c74b7 -- 2.49.0