diff --git a/ANNOUNCE b/ANNOUNCE index d6c9cd442..361bf2c35 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 @@ Version 1.6.14beta01 [September 14, 2014] Claudio Fontana) Add "#include " 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 712bc9781..5e6f4c159 100644 --- a/CHANGES +++ b/CHANGES @@ -4985,12 +4985,15 @@ Version 1.6.14beta01 [September 14, 2014] Claudio Fontana) Add "#include " 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 e8401c93f..458c9425a 100644 --- a/contrib/libtests/pngvalid.c +++ b/contrib/libtests/pngvalid.c @@ -30,10 +30,6 @@ # include #endif -#ifdef HAVE_FEENABLEEXCEPT /* from config.h, if included */ -# include -#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 +# endif +#endif + + #ifdef PNG_ZLIB_HEADER # include PNG_ZLIB_HEADER #else @@ -9976,9 +9979,11 @@ static void signal_handler(int signum) 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 @@ int main(int argc, char **argv) /* 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);