[htdocs,1/2] bugs: improve "ABI changes" subsection
Checks
Commit Message
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.
---
htdocs/bugs/index.html | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
Comments
This looks more accurate than the current wording, yes.
Specifically, only objects/libraries "built with experimental standard
support" need to be recompiled.
LGTM, but I'll let Jason give approval.
On Wed, 12 Feb 2025 at 09:30, Sam James <sam@gentoo.org> wrote:
>
> 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.
> ---
> 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 d6556b26..99d19095 100644
> --- a/htdocs/bugs/index.html
> +++ b/htdocs/bugs/index.html
> @@ -633,14 +633,14 @@ changed the parser rules so that <code><::</code> works as expected.
> 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 such libraries built
> +with experimental standard support 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 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>
>
> --
> 2.48.1
>
Jonathan Wakely <jwakely@redhat.com> writes:
> This looks more accurate than the current wording, yes.
>
> Specifically, only objects/libraries "built with experimental standard
> support" need to be recompiled.
>
> LGTM, but I'll let Jason give approval.
>
ping (I've found myself citing this section a few times recently and
don't want people to get the wrong idea).
>
>
>
> On Wed, 12 Feb 2025 at 09:30, Sam James <sam@gentoo.org> wrote:
>>
>> 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.
>> ---
>> 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 d6556b26..99d19095 100644
>> --- a/htdocs/bugs/index.html
>> +++ b/htdocs/bugs/index.html
>> @@ -633,14 +633,14 @@ changed the parser rules so that <code><::</code> works as expected.
>> 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 such libraries built
>> +with experimental standard support 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 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>
>>
>> --
>> 2.48.1
>>
@@ -633,14 +633,14 @@ changed the parser rules so that <code><::</code> works as expected.
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 such libraries built
+with experimental standard support 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 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>