From 350fe2829e2012d0e768602102fac31b474b1d2c Mon Sep 17 00:00:00 2001
From: Jonathan Wakely
_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC
may be defined
+to an expression that yields 0 if and only if the system headers
+are exposing non-standard isinf(double)
and
+isnan(double)
functions in the global namespace. Those functions
+should be detected automatically by the configure
script when
+libstdc++ is built but if their presence depends on compilation flags or
+other macros the static configuration can be overridden.
Finally, you should bracket the entire file in an include-guard, like this:
diff --git a/libstdc++-v3/doc/xml/manual/internals.xml b/libstdc++-v3/doc/xml/manual/internals.xml index 7acec6bbf59..09407f86c24 100644 --- a/libstdc++-v3/doc/xml/manual/internals.xml +++ b/libstdc++-v3/doc/xml/manual/internals.xml @@ -132,6 +132,14 @@ the standard. to an expression that yields 0 if and only if the system headers are exposing proper support for the related set of functions. If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. + +_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC
may be defined +to an expression that yields 0 if and only if the system headers +are exposing non-standardisinf(double)
and +isnan(double)
functions in the global namespace. Those functions +should be detected automatically by theconfigure
script when +libstdc++ is built but if their presence depends on compilation flags or +other macros the static configuration can be overridden.Finally, you should bracket the entire file in an include-guard, like this: diff --git a/libstdc++-v3/include/c_global/cmath b/libstdc++-v3/include/c_global/cmath index c4ee3f57fc3..eca712e0549 100644 --- a/libstdc++-v3/include/c_global/cmath +++ b/libstdc++-v3/include/c_global/cmath @@ -610,7 +610,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION isinf(float __x) { return __builtin_isinf(__x); } -#ifdef _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN +#if _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN \ + && !_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC using ::isinf; #else constexpr bool @@ -634,7 +635,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION isnan(float __x) { return __builtin_isnan(__x); } -#ifdef _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN +#if _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN \ + && !_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC using ::isnan; #else constexpr bool