diff --git a/libraries/AP_Common/missing/cmath b/libraries/AP_Common/missing/cmath index 4d04c10402..69f6e7bd96 100644 --- a/libraries/AP_Common/missing/cmath +++ b/libraries/AP_Common/missing/cmath @@ -2,21 +2,26 @@ #include_next -#ifdef __CYGWIN__ -// hack to get SITL on windows working -#ifndef HAVE_CMATH_ISFINITE -#define HAVE_CMATH_ISFINITE -#define NEED_CMATH_ISFINITE_STD_NAMESPACE +#ifndef WAF_BUILD +# ifdef __GNUG__ +# define _GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +# if _GCC_VERSION >= 50300 +# ifndef HAVE_CMATH_ISFINITE +# define HAVE_CMATH_ISFINITE +# define NEED_CMATH_ISFINITE_STD_NAMESPACE +# endif +# ifndef HAVE_CMATH_ISINF +# define HAVE_CMATH_ISINF +# define NEED_CMATH_ISINF_STD_NAMESPACE +# endif +# ifndef HAVE_CMATH_ISNAN +# define HAVE_CMATH_ISNAN +# define NEED_CMATH_ISNAN_STD_NAMESPACE +# endif +# endif +# undef _GCC_VERSION +# endif #endif -#ifndef HAVE_CMATH_ISINF -#define HAVE_CMATH_ISINF -#define NEED_CMATH_ISINF_STD_NAMESPACE -#endif -#ifndef HAVE_CMATH_ISNAN -#define HAVE_CMATH_ISNAN -#define NEED_CMATH_ISNAN_STD_NAMESPACE -#endif -#endif // __CYGWIN__ #if defined(HAVE_CMATH_ISFINITE) && defined(NEED_CMATH_ISFINITE_STD_NAMESPACE) using std::isfinite;