https://gcc.gnu.org/g:e23e5370d5855fc18b9f6f3fb680fcd2971e7a79

commit r15-3904-ge23e5370d5855fc18b9f6f3fb680fcd2971e7a79
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Sep 26 23:45:22 2024 +0200

    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  <ja...@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.

Diff:
---
 libstdc++-v3/config/os/bsd/dragonfly/os_defines.h |  6 +++++-
 libstdc++-v3/config/os/bsd/freebsd/os_defines.h   | 12 ++++++++++--
 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 5c48ca9ee656..e030fa3dc872 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 6c931821329e..0d63ae6cec4c 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

Reply via email to