[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);