diff --git a/configure.ac b/configure.ac index 3b8746ae4fa0f60c0d16971a221a3ef49e40dbaa..ee3ea0593ce51594d70af9f7b2e7790f5fe2c869 100644 --- a/configure.ac +++ b/configure.ac @@ -114,6 +114,20 @@ AC_ARG_ENABLE(werror, CFLAGS="$sav_CFLAGS" fi],) +# For GCC 5 the default mode for C is -std=gnu11 instead of -std=gnu89 +# In pngpriv.h we request just the POSIX 1003.1 and C89 APIs by defining _POSIX_SOURCE to 1 +# This is incompatible with the new default mode, so we test for that and force the +AC_MSG_CHECKING([if we need to force back C standard to C89]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#define _POSIX_SOURCE 1 +#include +])],AC_MSG_RESULT(no),[ +if test "x$GCC" != "xyes"; then + AC_MSG_ERROR([Forcing back to C89 is required but the flags are unknown for other compilers than GCC]) +fi +AC_MSG_RESULT(yes) +CFLAGS="$CFLAGS -std=c89" +]) + # Checks for header files. AC_HEADER_STDC