summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2012-01-26 18:48:20 -0800
committerEric Anholt <[email protected]>2012-01-30 11:32:54 -0800
commitb9aab8b3b3769b9c5121686efe3446dae770b951 (patch)
treeb61939265e00e83143768e56b7a5ae0e06ee0422
parentef3cec5804dfecd60d5d34545d73f9f2dc8b0a22 (diff)
autoconf: Enable missing-prototypes errors when available.
After the removal of the dri driver link test, this should help avoid the original problem that it was designed to catch: The warning about a missing prototype due to typoing a function name scrolling by in the Mesa build spew, and you not noticing until you try to run an application and it falls back to swrast. Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--configure.ac15
1 files changed, 14 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index df9f88049c7..d42a52941bd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -176,7 +176,20 @@ esac
dnl Add flags for gcc and g++
if test "x$GCC" = xyes; then
- CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
+ CFLAGS="$CFLAGS -Wall -std=c99"
+
+ # Enable -Werror=implicit-function-declaration and
+ # -Werror=missing-prototypes, if available, or otherwise, just
+ # -Wmissing-prototypes. This is particularly useful to avoid
+ # generating a loadable driver module that has undefined symbols.
+ save_CFLAGS="$CFLAGS"
+ AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
+ CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
+ CFLAGS="$CFLAGS -Werror=missing-prototypes"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM()],
+ AC_MSG_RESULT([yes]),
+ [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
+ AC_MSG_RESULT([no])]);
# Enable -fvisibility=hidden if using a gcc that supports it
save_CFLAGS="$CFLAGS"