configure: check if compiler supports -Werror=vla.

Check if the compiler supports -Werror=vla before using it.
-Wvla was introduced with GCC 4.3 and is not present in 4.2.
Fixes the build on OpenBSD.

v2: Fix statement order, and quote $save_CFLAGS.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89433
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Signed-off-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
Jonathan Gray 2015-03-17 13:16:05 +11:00 committed by Jose Fonseca
parent eeb504e0ae
commit 8475526a38
1 changed files with 14 additions and 2 deletions

View File

@ -278,8 +278,20 @@ if test "x$GCC" = xyes; then
# - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which
# supports most of C99)
# - the rest has no compiler compiler restrictions
MSVC2013_COMPAT_CFLAGS="-Werror=vla -Werror=pointer-arith"
MSVC2013_COMPAT_CXXFLAGS="-Werror=vla -Werror=pointer-arith"
MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"
MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"
# Enable -Werror=vla if compiler supports it
save_CFLAGS="$CFLAGS"
AC_MSG_CHECKING([whether $CC supports -Werror=vla])
CFLAGS="$CFLAGS -Werror=vla"
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
[MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla";
MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla";
AC_MSG_RESULT([yes])],
AC_MSG_RESULT([no]));
CFLAGS="$save_CFLAGS"
MSVC2008_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=declaration-after-statement"
MSVC2008_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS"
fi