[libpng16] Do not include <fenv.h> when FLOATING_ARITHMETIC is not supported.

This commit is contained in:
Glenn Randers-Pehrson 2014-09-18 09:23:45 -05:00
parent 996046aed5
commit baa95a2d49
3 changed files with 23 additions and 9 deletions

View File

@ -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 <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

View File

@ -4985,12 +4985,15 @@ Version 1.6.14beta01 [September 14, 2014]
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

View File

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