[PATCH v2] Makefile: enable -Werror=implicit-int and -Werror=strict-prototypes by default

Sergei Trofimovich
2013-08-15T18:41:00Z

The common error type found in forward-ported/backported patches is missing headers.
One recent example (files and function names are mangled):

void foo(){}
EXPORT_SYMBOL(foo);

gave only warning

foo.c:12345678:5: warning: function declaration isn't a prototype [-Wstrict-prototypes]
void foo(){}
^

foo.c:12345679:5: warning: data definition has no type or storage class [enabled by default]
EXPORT_SYMBOL(foo);
foo.c:12345679:5: warning: type defaults to 'int' in declaration of 'EXORT_SYMBOL' [-Werror=implicit-int]

Now it's a fata error. Tested on x86_64 allyesconfig.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: linux-kbuild@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>
---
Makefile | 5 +++++
1 file changed, 5 insertions(+)

Change since v1:
- use 'cc-option' to respect old gccs
- fix typos. Thanks to Oleg Verych

diff --git a/Makefile b/Makefile
index 6e48848..53f4776 100644
--- a/Makefile
+++ b/Makefile
@@ -374,6 +374,11 @@ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-Werror-implicit-function-declaration \
-Wno-format-security \
-fno-delete-null-pointer-checks
+
+# not universally available, but nice to have ones
+KBUILD_CFLAGS += $(call cc-option,-Werror=implicit-int) \
+ $(call cc-option,-Werror=strict-prototypes)
+
KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL :=
KBUILD_AFLAGS := -D__ASSEMBLY__
--
1.8.3.2