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