On Mon, 8 Sept 2025 at 09:25, Jakub Jelinek <ja...@redhat.com> wrote: > > Hi! > > During the tests mentioned in > https://gcc.gnu.org/pipermail/gcc-patches/2025-August/692482.html > (but dunno why I haven't noticed it back in August but only when testing > https://gcc.gnu.org/pipermail/gcc-patches/2025-September/694527.html ) > I've noticed two ext header problems. > One is that #include <ext/pointer.h> got broken with the > r13-3037-g18f176d0b25591e28 change and since then is no longer > self-contained, as it includes iosfwd only if _GLIBCXX_HOSTED is defined > but doesn't actually include bits/c++config.h to make sure it is defined, > then includes a bunch of headers which do include bits/c++config.h and > finally uses in #if _GLIBCXX_HOSTED guarded code what is declared in iosfwd. > The other problem is that ext/cast.h is also not a self-contained header, > but that one has > /** @file ext/cast.h > * This is an internal header file, included by other library headers. > * Do not attempt to use it directly. @headername{ext/pointer.h} > */ > comment, so I think we just shouldn't include it in extc++.h and let > ext/pointer.h include it. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
OK, and for the branches too if you want. > > 2025-09-08 Jakub Jelinek <ja...@redhat.com> > > PR libstdc++/121827 > * include/precompiled/extc++.h: Don't include ext/cast.h which is an > internal header. > * include/ext/pointer.h: Include bits/c++config.h before > #if _GLIBCXX_HOSTED. > > --- libstdc++-v3/include/precompiled/extc++.h 2025-01-02 20:54:32.906119166 > +0100 > +++ libstdc++-v3/include/precompiled/extc++.h 2025-09-06 09:57:53.949297638 > +0200 > @@ -37,7 +37,6 @@ > #endif > #include <ext/alloc_traits.h> > #include <ext/atomicity.h> > -#include <ext/cast.h> > #include <ext/iterator> > #include <ext/numeric_traits.h> > #include <ext/pointer.h> > --- libstdc++-v3/include/ext/pointer.h.jj 2025-01-02 20:54:32.900119249 > +0100 > +++ libstdc++-v3/include/ext/pointer.h 2025-09-06 09:57:11.945849025 +0200 > @@ -40,6 +40,7 @@ > #pragma GCC system_header > #endif > > +#include <bits/c++config.h> > #if _GLIBCXX_HOSTED > # include <iosfwd> > #endif > > Jakub >