On Mon, 28 Apr 2025, 21:37 François Dumont, <[email protected]> wrote:
> Much better indeed, there is only the aligned_storage adaptation left.
>
> It will simplify my big versioned namespace patch to use cxx11 abi, very
> nice !
>
> libstdc++: [_GLIBCXX_INLINE_VERSION] Fix several tests failures
>
> Adapt testsuite v3_target_compile to strip version namespace from
> compiler
> output so that dg-error and dg-warning directives do not need to
> consider it.
>
> Avoid a aligned_storage check as behavior has been fixed only when
> using
> gnu-versioned-namespace as it is an abi breaking change.
>
> libstdc++-v3/ChangeLog:
>
> * testsuite/lib/libstdc++.exp (v3_target_compile): Strip
> version namespace
> from compiler output.
> * testsuite/20_util/aligned_storage/value.cc
> [_GLIBCXX_INLINE_VERSION]:
> Avoid align_msa check.
> * testsuite/20_util/function/cons/70692.cc: Remove now
> useless __8 namespace
> pattern.
> * testsuite/23_containers/map/48101_neg.cc: Likewise.
> * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
>
> Ok to commit ? And maybe backports ?
>
OK for trunk and 15.
I think the aligned_storage part is not needed for gcc-14, right? The rest
of ok to backport for gcc-14.
Thanks!
> François
>
>
> On 28/04/2025 21:20, Jonathan Wakely wrote:
> > On 28/04/25 19:11 +0200, François Dumont wrote:
> >> Hi
> >>
> >> Pretty straightforward except for the aligned_storage one for which I
> >> just avoid the check when gnu-versioned-namespace mode is being used.
> >>
> >> libstdc++: [_GLIBCXX_INLINE_VERSION] Fix several tests failures
> >>
> >> Several tests are failing when libstdc++ is configured with:
> >> --enable-symvers=gnu-versioned-namespace
> >>
> >> Most of them are due to dg-error checks not considering the __8
> >> nested namespace.
> >>
> >> libstdc++-v3/ChangeLog:
> >>
> >> * testsuite/20_util/aligned_storage/value.cc
> >> [_GLIBCXX_INLINE_VERSION]:
> >> Avoid align_msa check.
> >> * testsuite/20_util/function_objects/bind_back/111327.cc:
> >> Adapt dg-error diagnostic
> >> to __8 stdnested namespace.
> >> *
> >> testsuite/20_util/function_objects/bind_front/111327.cc: Likewise.
> >> *
> >> testsuite/30_threads/packaged_task/cons/dangling_ref.cc: Likewise.
> >> * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc:
> >> Likewise.
> >> * testsuite/std/format/ranges/format_kind_neg.cc: Likewise.
> >>
> >> Let me know if you think it worth a backport.
> >>
> >> Tested under Linux x86_64 w/o gnu-versioned-namespace mode.
> >>
> >> Ok to commit ?
> >
> > Could you test this instead please?
> >
> > --- a/libstdc++-v3/testsuite/lib/libstdc++.exp
> > +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
> > @@ -648,6 +648,10 @@ proc v3_target_compile { source dest type options
> > } {
> > set v3_additional_files {}
> >
> > set comp_output [target_compile $source $dest $type $options]
> > + # Strip versioned namespace from the compiler output,
> > + # so that dg-error and dg-warning patterns can ignore it:
> > + regsub -all "std::__8::" $comp_output "std::" comp_output
> > +
> > if { $type == "executable" && $file_to_delete != "" } {
> > file delete $file_to_delete
> > if { [istarget *-*-darwin*] && [file exists
> > $file_to_delete.dSYM] } {
> >
> >
> > This should mean we never need to use "std::(__8)?::" again :-)
> >