On 8/28/24 6:09 AM, Jonathan Wakely wrote:
On Wed, 28 Aug 2024 at 10:58, Jason Merrill <ja...@redhat.com> wrote:

On 8/28/24 5:55 AM, Jonathan Wakely wrote:
On Wed, 28 Aug 2024 at 10:54, Jason Merrill wrote:

Tested x86_64-pc-linux-gnu, OK for trunk?

Redefining that macro to invalidate PCH is a bit of a hack, but it's
what we have for now, so OK for trunk, thanks.

If it's just to invalidate PCH, do we want to #undef instead?

It might not even be necessary now, since r14-3276-g91315f23ba127e
removed any -include bits/stdc++.h from the flags. I'd need to look
into that though.

I suppose it could still find some random other PCH corresponding to the first #include, though that seems very unlikely.

  Does
anything care about the actual value of the macro?

No, I don't think so.

But #undef would only work if it comes after including
<bits/c++config.h>, so we'd need to force an include of that into the
flags.

I meant #undef before #define in c++config.h so we get the normal value.

And doing that might be enough to invalidate PCH, because a PCH
need to be the first include, right?

Yes.



-- 8< --

testsuite/lib/dg-options.exp defines __GLIBCXX__ to 9999999; avoid a macro
redefinition warning in that case.

libstdc++-v3/ChangeLog:

          * include/bits/c++config: Avoid redefining __GLIBCXX__.
---
   libstdc++-v3/include/bits/c++config | 2 ++
   1 file changed, 2 insertions(+)

diff --git a/libstdc++-v3/include/bits/c++config 
b/libstdc++-v3/include/bits/c++config
index 0f0cc7cd659..4095ac89741 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -36,7 +36,9 @@
   #define _GLIBCXX_RELEASE

   // The datestamp of the C++ library in compressed ISO date format.
+#ifndef __GLIBCXX__ /* The testsuite defines it to 99999999.  */
   #define __GLIBCXX__
+#endif

   // Macros for various attributes.
   //   _GLIBCXX_PURE

base-commit: 7f4f1bb29a47fbe63a15dda8acfe247b2e934959
--
2.46.0





Reply via email to