Fix gnu versioned namespace mode 01/03

Iain Sandoe idsandoe@googlemail.com
Tue May 7 16:08:57 GMT 2024


Hi François

As you know I am keen to see this land - but having had some experience with applying previous patches to actual toolchain builds .. 

> On 4 May 2024, at 22:11, François Dumont <frs.dumont@gmail.com> wrote:
> 
> libstdc++: Bump gnu versioned namespace to __9

I think that the namespace version should be a top-level configure choice.  —with-libstdcxx-namespace-version= (for example) - we ought to be able to make that the only thing that is required to trigger the process.

The reasons are:

 1. (significant) The information is needed by both the (FE) testsuites and the library ( I do not think the it’s a nice maintenance job to have to go through all the testcases that have the namespace visible and change them for each GCC release); instead we should arrange to set some variable in gcc/site.exp that the FE tests can consume (I do not think that this is too hard to arrange - although it might be necessary to figure out how to make scan* tests work with it)

 2. (nice-to-have) For targets which have never used a versioned namespace it seems odd to jump straight from 6 to 9.

Iain

> 
> libstdc++-v3/ChangeLog:
> 
>             * acinclude.m4 (libtool_VERSION): Bump to 9:0:0.
>             * config/abi/pre/gnu-versioned-namespace.ver (GLIBCXX_8.0): Replace by GLIBCXX_9.0.
>             Adapt all references to __8 namespace.
>             * configure: Regenerate.
>             * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Define as 'namespace __9{'.
>             (_GLIBCXX_STD_V): Adapt.
>             * include/std/format (to_chars): Update namespace version in symbols alias definitions.
>             (__format::_Arg_store): Update namespace version in make_format_args friend
>             declaration.
>             * python/libstdcxx/v6/printers.py (_versioned_namespace): Assign '__9::'.
>             * python/libstdcxx/v6/xmethods.py: Likewise.
>             * testsuite/23_containers/map/48101_neg.cc: Adapt dg-error.
>             * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
>             * testsuite/20_util/function/cons/70692.cc: Likewise.
>             * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
>             * testsuite/20_util/function_objects/bind_front/111327.cc: Likewise.
>             * testsuite/lib/prune.exp (libstdc++-dg-prune): Bump version namespace.
> 
> Ok to commit ?
> 
> François
> <bump_version_ns_patch.txt>



More information about the Libstdc++ mailing list