[Mesa-dev] [PATCH] autoconf: Enable missing-prototypes errors when available.

Jon TURNEY jon.turney at dronecode.org.uk
Tue Jan 31 05:45:09 PST 2012


On 27/01/2012 19:58, 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 like this change breaks compilation of the C dispatch code, see [1], [2].

In file included from glapi_dispatch.c:91:
../../../src/mapi/glapi/glapitemp.h:4641: error: no previous prototype for
'glDrawBuffersNV'


[1] http://tinderbox.freedesktop.org/builds/2012-01-31-0012/logs/libGL/#build
[2]
http://tinderbox.freedesktop.org/builds/2012-01-31-0012/logs/libGL-indirect-only/#build


More information about the mesa-dev mailing list