[PATCH] libstdc++: Introduce GLIBCXX_3.4.37 version for symbols not backported to GCC-16.
Jonathan Wakely
jwakely@redhat.com
Mon Jul 20 10:40:06 GMT 2026
On Mon, 20 Jul 2026 at 11:39, Tomasz Kamiński <tkaminsk@redhat.com> wrote:
>
> As part of the backport of r17-471-ge79f0f818c0e42 and r17-2193-g50cbacfaa1e776),
> the corresponding exports of chrono::__detail::__recent_leap_second_info and
> specializations of basic_format_arg::_M_handle_unrecognized also need to be
> introduced. This also require bump of the libtool_VERSION to 3.4.36.
>
> This patch bumps version again to 3.4.37 and moves remaining symbols defined
> in GCC 17 (basic_string's _S_allocate_at_least and _M_create_plus) to it.
>
> libstdc++-v3/ChangeLog:
>
> * acinclude.m4 (libtool_VERSION): Bump version.
> * config/abi/pre/gnu.ver (GLIBCXX_3.4.37): Add new symbol
> version and move basic_string's _S_allocate_at_least and
> _M_create_plus symbols to it.
> * configure: Regenerate.
> * testsuite/util/testsuite_abi.cc: Update known_versions
> and latestp.
> ---
> libstdc++-v3/acinclude.m4 | 2 +-
> libstdc++-v3/config/abi/pre/gnu.ver | 9 +++++++--
> libstdc++-v3/configure | 2 +-
> libstdc++-v3/testsuite/util/testsuite_abi.cc | 3 ++-
> 4 files changed, 11 insertions(+), 5 deletions(-)
OK, thanks
>
> diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
> index c064b1271ec..7942ce0ffa2 100644
> --- a/libstdc++-v3/acinclude.m4
> +++ b/libstdc++-v3/acinclude.m4
> @@ -4087,7 +4087,7 @@ changequote([,])dnl
> fi
>
> # For libtool versioning info, format is CURRENT:REVISION:AGE
> -libtool_VERSION=6:36:0
> +libtool_VERSION=6:37:0
>
> # Everything parsed; figure out what files and settings to use.
> case $enable_symvers in
> diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
> index 9e1bebb4f50..4fbb87acee3 100644
> --- a/libstdc++-v3/config/abi/pre/gnu.ver
> +++ b/libstdc++-v3/config/abi/pre/gnu.ver
> @@ -2623,7 +2623,7 @@ GLIBCXX_3.4.35 {
>
> } GLIBCXX_3.4.34;
>
> -# GCC 17.1.0
> +# GCC 16.2.0
> GLIBCXX_3.4.36 {
>
> _ZNSt6chrono8__detail25__recent_leap_second_infoERNS_16leap_second_infoEj;
> @@ -2632,11 +2632,16 @@ GLIBCXX_3.4.36 {
> # basic_format_arg<wformat_context>::handle basic_format_arg<wformat_context>::_M_handle_unrecognized() const;
> _ZNKSt16basic_format_argISt20basic_format_contextINSt8__format10_Sink_iterI[cw]EE[cw]EE22_M_handle_unrecognizedEv;
>
> +} GLIBCXX_3.4.35;
> +
> +# GCC 17.1.0
> +GLIBCXX_3.4.37 {
> +
> # basic_string::allocate_at_least
> _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE*_S_allocate_*;
> _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE*_M_create_*;
>
> -} GLIBCXX_3.4.35;
> +} GLIBCXX_3.4.36;
>
> # Symbols in the support library (libsupc++) have their own tag.
> CXXABI_1.3 {
> diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
> index 101212d06a8..96e3298a28b 100755
> --- a/libstdc++-v3/configure
> +++ b/libstdc++-v3/configure
> @@ -51016,7 +51016,7 @@ $as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}
> fi
>
> # For libtool versioning info, format is CURRENT:REVISION:AGE
> -libtool_VERSION=6:36:0
> +libtool_VERSION=6:37:0
>
> # Everything parsed; figure out what files and settings to use.
> case $enable_symvers in
> diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.cc b/libstdc++-v3/testsuite/util/testsuite_abi.cc
> index 4e80c5f184a..bc637f6671c 100644
> --- a/libstdc++-v3/testsuite/util/testsuite_abi.cc
> +++ b/libstdc++-v3/testsuite/util/testsuite_abi.cc
> @@ -218,6 +218,7 @@ check_version(symbol& test, bool added)
> known_versions.push_back("GLIBCXX_3.4.34");
> known_versions.push_back("GLIBCXX_3.4.35");
> known_versions.push_back("GLIBCXX_3.4.36");
> + known_versions.push_back("GLIBCXX_3.4.37");
> known_versions.push_back("GLIBCXX_LDBL_3.4.31");
> known_versions.push_back("GLIBCXX_IEEE128_3.4.29");
> known_versions.push_back("GLIBCXX_IEEE128_3.4.30");
> @@ -261,7 +262,7 @@ check_version(symbol& test, bool added)
> test.version_status = symbol::incompatible;
>
> // Check that added symbols are added in the latest pre-release version.
> - bool latestp = (test.version_name == "GLIBCXX_3.4.36"
> + bool latestp = (test.version_name == "GLIBCXX_3.4.37"
> || test.version_name == "CXXABI_1.3.17"
> || test.version_name == "CXXABI_FLOAT128"
> || test.version_name == "CXXABI_TM_1");
> --
> 2.55.0
>
More information about the Libstdc++
mailing list