[libpng16] Do not include <fenv.h> when FLOATING_ARITHMETIC is not supported.
diff --git a/ANNOUNCE b/ANNOUNCE
index d6c9cd4..361bf2c 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-Libpng 1.6.14beta02 - September 14, 2014
+Libpng 1.6.14beta02 - September 18, 2014
 
 This is not intended to be a public release.  It will be replaced
 within a few weeks by a public version or by another test version.
@@ -32,12 +32,15 @@
     Claudio Fontana)
   Add "#include <setjmp.h>" to contrib/tools/pngfix.c (John Bowler)
 
-Version 1.6.14beta02 [September 14, 2014]
+Version 1.6.14beta02 [September 18, 2014]
   Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
     because usleep() is deprecated.
   Define usleep() in contrib/gregbook/rpng2-x.c if not already defined
     in unistd.h and nanosleep() is not available; fixes error introduced
     in libpng-1.6.13.
+  Disable floating point exception handling in pngvalid.c when
+    PNG_FLOATING_ARITHMETIC is not supported (bug report by "zootus
+    at users.sourceforge.net").
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index 712bc97..5e6f4c1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4985,12 +4985,15 @@
     Claudio Fontana)
   Add "#include <setjmp.h>" to contrib/tools/pngfix.c (John Bowler)
 
-Version 1.6.14beta02 [September 14, 2014]
+Version 1.6.14beta02 [September 18, 2014]
   Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
     because usleep() is deprecated.
   Define usleep() in contrib/gregbook/rpng2-x.c if not already defined
     in unistd.h and nanosleep() is not available; fixes error introduced
     in libpng-1.6.13.
+  Disable floating point exception handling in pngvalid.c when
+    PNG_FLOATING_ARITHMETIC is not supported (bug report by "zootus
+    at users.sourceforge.net").
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/contrib/libtests/pngvalid.c b/contrib/libtests/pngvalid.c
index e8401c9..458c942 100644
--- a/contrib/libtests/pngvalid.c
+++ b/contrib/libtests/pngvalid.c
@@ -30,10 +30,6 @@
 #  include <config.h>
 #endif
 
-#ifdef HAVE_FEENABLEEXCEPT /* from config.h, if included */
-#  include <fenv.h>
-#endif
-
 /* Define the following to use this test against your installed libpng, rather
  * than the one being built here:
  */
@@ -43,6 +39,13 @@
 #  include "../../png.h"
 #endif
 
+#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+# ifdef HAVE_FEENABLEEXCEPT /* from config.h, if included */
+#   include <fenv.h>
+# endif
+#endif
+
+
 #ifdef PNG_ZLIB_HEADER
 #  include PNG_ZLIB_HEADER
 #else
@@ -9976,9 +9979,11 @@
          pos = safecat(msg, sizeof msg, pos, "abort");
          break;
 
+#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
       case SIGFPE:
          pos = safecat(msg, sizeof msg, pos, "floating point exception");
          break;
+#endif
 
       case SIGILL:
          pos = safecat(msg, sizeof msg, pos, "illegal instruction");
@@ -10044,18 +10049,21 @@
 
    /* Add appropriate signal handlers, just the ANSI specified ones: */
    signal(SIGABRT, signal_handler);
-   signal(SIGFPE, signal_handler);
    signal(SIGILL, signal_handler);
    signal(SIGINT, signal_handler);
    signal(SIGSEGV, signal_handler);
    signal(SIGTERM, signal_handler);
 
-#ifdef HAVE_FEENABLEEXCEPT
+#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
+   signal(SIGFPE, signal_handler);
+
+# ifdef HAVE_FEENABLEEXCEPT
    /* Only required to enable FP exceptions on platforms where they start off
     * disabled; this is not necessary but if it is not done pngvalid will likely
     * end up ignoring FP conditions that other platforms fault.
     */
    feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW);
+# endif
 #endif
 
    modifier_init(&pm);