gdb: disable -Wmissing-prototypes warning w/gcc

Mike Frysinger vapier@gentoo.org
Thu Nov 4 12:00:53 GMT 2021


On 03 Mar 2020 17:34, Simon Marchi wrote:
> While compiling with clang, I noticed it didn't catch cases where my
> function declaration didn't match my function definition.  This is
> normally caught by gcc with -Wmissing-declarations.
> 
> On clang, this is caught by -Wmissing-prototypes instead.
> 
> Note that on gcc, -Wmissing-prototypes also exists, but is only valid
> for C and Objective-C.  It gets correctly rejected by the configure
> script since gcc rejects it with:
> 
>     cc1plus: error: command line option '-Wmissing-prototypes' is valid for C/ObjC but not for C++ -Werror
> 
> So this warning flag ends up not used for gcc (which is what we want).

so ccache has a long standing bug where it mishandles -Werror with other
-W options causing the configure test to pass when it shouldn't.
https://github.com/ccache/ccache/issues/738

that means ccache+gcc builds of gdb are full of annoying logs:
  CXX    cli/cli-decode.o
cc1plus: warning: command-line option ‘-Wmissing-prototypes’ is valid for C/ObjC but not for C++

i get that the configure script here isn't wrong, but there aren't any
knobs in here that i can tweak to workaround the issue either, and i'm
trying to avoid carrying patches in all my local branches, and configure
files are kind of meant to deal with all sorts of system warts.

so random terrible idea below.
-mike

--- a/gdbsupport/warning.m4
+++ b/gdbsupport/warning.m4
@@ -51,10 +51,15 @@ build_warnings="-Wall -Wpointer-arith \
 -Wdeprecated-copy-dtor \
 -Wredundant-move \
 -Wmissing-declarations \
--Wmissing-prototypes \
 -Wstrict-null-sentinel \
 "
 
+# GCC doesn't support this flag currently, and probing via ccache breaks.
+# https://github.com/ccache/ccache/issues/738
+if test "${GCC}" != yes ; then
+  build_warnings="$build_warnings -Wmissing-prototypes"
+fi
+
 case "${host}" in
   *-*-mingw32*)
     # Enable -Wno-format by default when using gcc on mingw since many
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/gdb-patches/attachments/20211104/2a38751a/attachment.sig>


More information about the Gdb-patches mailing list