aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2024-09-26 23:45:22 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2024-09-26 23:45:22 +0200
commite23e5370d5855fc18b9f6f3fb680fcd2971e7a79 (patch)
treebda4f70a7815b3f075f3096b2dff2c3def7d7bc3
parentee9f00606f184be37d6f9df74cc7e222157c7fee (diff)
downloadgcc-e23e5370d5855fc18b9f6f3fb680fcd2971e7a79.zip
gcc-e23e5370d5855fc18b9f6f3fb680fcd2971e7a79.tar.gz
gcc-e23e5370d5855fc18b9f6f3fb680fcd2971e7a79.tar.bz2
libstdc++: Fix freebsd/dragonfly build [PR116859]
As reported in the PR, the system headers libstdc++ changes result in -Werror=expansion-to-defined errors on FreeBSD and supposedly on DragonFly too. The following patch fixes those by performing the preprocessor test right away, rather than using defined in the macro definitions. I think neither __ISO_C_VISIBLE nor __LONG_LONG_SUPPORTED should normally change during compilation. 2024-09-26 Jakub Jelinek <jakub@redhat.com> PR libstdc++/116859 * config/os/bsd/freebsd/os_defines.h (_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC, _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC): Avoid -Wexpansion-to-defined warnings. * config/os/bsd/dragonfly/os_defines.h (_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC): Likewise.
-rw-r--r--libstdc++-v3/config/os/bsd/dragonfly/os_defines.h6
-rw-r--r--libstdc++-v3/config/os/bsd/freebsd/os_defines.h12
2 files changed, 15 insertions, 3 deletions
diff --git a/libstdc++-v3/config/os/bsd/dragonfly/os_defines.h b/libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
index 5c48ca9..e030fa3 100644
--- a/libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
+++ b/libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
@@ -36,6 +36,10 @@
#define _GLIBCXX_USE_C99_CHECK 1
#define _GLIBCXX_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
#define _GLIBCXX_USE_C99_LONG_LONG_CHECK 1
-#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC (_GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
+#if _GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED
+#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC 1
+#else
+#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC 0
+#endif
#endif
diff --git a/libstdc++-v3/config/os/bsd/freebsd/os_defines.h b/libstdc++-v3/config/os/bsd/freebsd/os_defines.h
index 6c93182..0d63ae6 100644
--- a/libstdc++-v3/config/os/bsd/freebsd/os_defines.h
+++ b/libstdc++-v3/config/os/bsd/freebsd/os_defines.h
@@ -36,8 +36,16 @@
#define _GLIBCXX_USE_C99_CHECK 1
#define _GLIBCXX_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
#define _GLIBCXX_USE_C99_LONG_LONG_CHECK 1
-#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC (_GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
+#if _GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED
+#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC 1
+#else
+#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC 0
+#endif
#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK 1
-#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC defined _XOPEN_SOURCE
+#ifdef _XOPEN_SOURCE
+#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC 1
+#else
+#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC 0
+#endif
#endif