uclibc: fenv.h does not define the necessary things.
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>
Tue, 15 Nov 2011 20:43:52 +0000 (21:43 +0100)
committerQt by Nokia <qt-info@nokia.com>
Tue, 22 Nov 2011 14:17:08 +0000 (15:17 +0100)
libstdc++ provides the fenv.h found and for uclibc default toolchains
the bits/c++config.h has _GLIBCXX_HAVE_FENV_H undefined leading to
no import of the uclibc fenv.h

Change-Id: I53173b099f3d8791f527f1ccb60991de57cd19db
Filed: https://bugs.busybox.net/show_bug.cgi?id=4484
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
tests/auto/gui/painting/qpainter/tst_qpainter.cpp

index 9a41db1..a5a247f 100644 (file)
 #include <qlocale.h>
 #include <qnumeric.h>
 
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX) && !defined(__UCLIBC__)
+#    define QT_USE_FENV
+#endif
+
+#ifdef QT_USE_FENV
 #    include <fenv.h>
 #endif
 
@@ -729,7 +733,7 @@ void tst_QLocale::fpExceptions()
     _control87( 0 | _EM_INEXACT, _MCW_EM );
 #endif
 
-#ifdef Q_OS_LINUX
+#ifdef QT_USE_FENV
     fenv_t envp;
     fegetenv(&envp);
     feclearexcept(FE_ALL_EXCEPT);
@@ -747,7 +751,7 @@ void tst_QLocale::fpExceptions()
     _control87(oldbits, 0xFFFFF);
 #endif
 
-#ifdef Q_OS_LINUX
+#ifdef QT_USE_FENV
     fesetenv(&envp);
 #endif
 }
index 529bb3e..bd4d16f 100644 (file)
@@ -2598,7 +2598,7 @@ void tst_QPainter::monoImages()
     }
 }
 
-#if !defined(Q_OS_IRIX) && !defined(Q_OS_AIX) && !defined(Q_CC_MSVC) && !defined(Q_OS_SOLARIS)
+#if !defined(Q_OS_IRIX) && !defined(Q_OS_AIX) && !defined(Q_CC_MSVC) && !defined(Q_OS_SOLARIS) && !defined(__UCLIBC__)
 #include <fenv.h>
 
 static const QString fpeExceptionString(int exception)