about summary refs log tree commit diff
path: root/sysdeps/mips/math-tests.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/mips/math-tests.h')
-rw-r--r--sysdeps/mips/math-tests.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/sysdeps/mips/math-tests.h b/sysdeps/mips/math-tests.h
index 7be132685b..3f6ae3fc29 100644
--- a/sysdeps/mips/math-tests.h
+++ b/sysdeps/mips/math-tests.h
@@ -16,12 +16,13 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <features.h>
 #include <sgidefs.h>
 
 /* MIPS soft float does not support exceptions and rounding modes, and
-   long double when wider than double is implemented using fp-bit
-   which does not integrate with hardware exceptions and rounding
-   modes.  */
+   before GCC 4.9 long double when wider than double is implemented
+   using fp-bit which does not integrate with hardware exceptions and
+   rounding modes.  */
 #ifdef __mips_soft_float
 # define ROUNDING_TESTS_float(MODE)	((MODE) == FE_TONEAREST)
 # define ROUNDING_TESTS_double(MODE)	((MODE) == FE_TONEAREST)
@@ -29,7 +30,7 @@
 # define EXCEPTION_TESTS_float	0
 # define EXCEPTION_TESTS_double	0
 # define EXCEPTION_TESTS_long_double	0
-#elif _MIPS_SIM != _ABIO32
+#elif _MIPS_SIM != _ABIO32 && !__GNUC_PREREQ (4, 9)
 # define ROUNDING_TESTS_long_double(MODE)	((MODE) == FE_TONEAREST)
 # define EXCEPTION_TESTS_long_double	0
 #endif