Building an X86_64 kernel with W=1 throws a total of 9,948 lines of warnings of
this form for both 32bit and 64bit syscall tables. Given that the entire rest
of the build for my config only generates 8,375 lines of output, this is a big
reduction in the warnings generated.

./arch/x86/include/generated/asm/syscalls_32.h:885:21: warning: initialized 
field overwritten [-Woverride-init]
 __SYSCALL_I386(379, compat_sys_pwritev2, )
                     ^
arch/x86/entry/syscall_32.c:13:46: note: in definition of macro '__SYSCALL_I386'
 #define __SYSCALL_I386(nr, sym, qual) [nr] = sym,
                                              ^~~
./arch/x86/include/generated/asm/syscalls_32.h:885:21: note: (near 
initialization for 'ia32_sys_call_table[379]')
 __SYSCALL_I386(379, compat_sys_pwritev2, )
                     ^
arch/x86/entry/syscall_32.c:13:46: note: in definition of macro '__SYSCALL_I386'
 #define __SYSCALL_I386(nr, sym, qual) [nr] = sym,

Since we intentionally build the syscall tables this way, ignore that one
warning in the two files.

Signed-off-by: Valdis Kletnieks <valdis.kletni...@vt.edu>
---
diff --git a/arch/x86/entry/Makefile b/arch/x86/entry/Makefile
index fe91c25092da..77f28ce9c646 100644
--- a/arch/x86/entry/Makefile
+++ b/arch/x86/entry/Makefile
@@ -5,6 +5,8 @@
 OBJECT_FILES_NON_STANDARD_entry_$(BITS).o   := y
 OBJECT_FILES_NON_STANDARD_entry_64_compat.o := y
 
+CFLAGS_syscall_64.o            += -Wno-override-init
+CFLAGS_syscall_32.o            += -Wno-override-init
 obj-y                          := entry_$(BITS).o thunk_$(BITS).o 
syscall_$(BITS).o
 obj-y                          += common.o
 


Reply via email to