[Mesa-dev] [PATCH] autoconf: Enable missing-prototypes errors when available.
Kenneth Graunke
kenneth at whitecape.org
Fri Jan 27 12:39:46 PST 2012
On 01/27/2012 11:58 AM, Eric Anholt wrote:
> 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.
> ---
> configure.ac | 15 ++++++++++++++-
> 1 files changed, 14 insertions(+), 1 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 06d400f..0cd8421 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"
Looks OK to me. I've wondered whether we want to import the macro for
checking these things from xorg-util-macros, since we'll probably want
to do this for a few other ones too.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
More information about the mesa-dev
mailing list