Re: linux-next: lots of errors/warnings from the -Werror=missing-prototypes addition

From: Arnd Bergmann
Date: Wed Nov 29 2023 - 17:51:31 EST


On Wed, Nov 29, 2023, at 22:10, Andrew Morton wrote:
> On Thu, 30 Nov 2023 07:58:38 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxx> wrote:
>
>> Hi all,
>>
>> please see the kernelci results here:
>>
>> https://lore.kernel.org/all/656732fc.170a0220.49447.2c19@xxxxxxxxxxxxx/
>
> And I'm not seeing a lot of fixing activity for these. Arnd, do you
> think it was just too soon?

I was aware that a couple of architectures get new warnings,
and a previous version of my patch series turned -Wmissing-prototypes
off for those architectures.

Since most other architecture maintainers had already fixed all
the warnings after that series, my hope was that this would
happen for the rest as well.

I did all my testing with CONFIG_WERROR force-enabled, so
the bit I missed here is that at least three architectures
that are missing fixes also set -Werror: mips, sparc and alpha.

How about adding a patch to no longer force -Werror for
these?

diff --git a/arch/alpha/lib/Makefile b/arch/alpha/lib/Makefile
index 1cc74f7b50ef..6a779b9018fd 100644
--- a/arch/alpha/lib/Makefile
+++ b/arch/alpha/lib/Makefile
@@ -4,7 +4,6 @@
#

asflags-y := $(KBUILD_CFLAGS)
-ccflags-y := -Werror

# Many of these routines have implementations tuned for ev6.
# Choose them iff we're targeting ev6 specifically.
diff --git a/arch/alpha/mm/Makefile b/arch/alpha/mm/Makefile
index bd770302eb82..101dbd06b4ce 100644
--- a/arch/alpha/mm/Makefile
+++ b/arch/alpha/mm/Makefile
@@ -3,6 +3,4 @@
# Makefile for the linux alpha-specific parts of the memory manager.
#

-ccflags-y := -Werror
-
obj-y := init.o fault.o
diff --git a/arch/mips/Kbuild b/arch/mips/Kbuild
index af2967bffb73..e2d623621a00 100644
--- a/arch/mips/Kbuild
+++ b/arch/mips/Kbuild
@@ -1,10 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
-# Fail on warnings - also for files referenced in subdirs
-# -Werror can be disabled for specific files using:
-# CFLAGS_<file.o> := -Wno-error
-ifeq ($(W),)
-subdir-ccflags-y := -Werror
-endif

# platform specific definitions
include $(srctree)/arch/mips/Kbuild.platforms
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
index 1ce4d5028c86..58ea4ef9b622 100644
--- a/arch/sparc/kernel/Makefile
+++ b/arch/sparc/kernel/Makefile
@@ -5,7 +5,6 @@
#

asflags-y := -ansi
-#ccflags-y := -Werror

# Undefine sparc when processing vmlinux.lds - it is used
# And teach CPP we are doing $(BITS) builds (for this case)
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index 80b07bbe4978..59669ebddd4e 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -3,7 +3,6 @@
#

asflags-y := -ansi -DST_DIV0=0x02
-#ccflags-y := -Werror

lib-$(CONFIG_SPARC32) += ashrdi3.o
lib-$(CONFIG_SPARC32) += memcpy.o memset.o
diff --git a/arch/sparc/mm/Makefile b/arch/sparc/mm/Makefile
index a199484e131f..809d993f6d88 100644
--- a/arch/sparc/mm/Makefile
+++ b/arch/sparc/mm/Makefile
@@ -3,7 +3,6 @@
#

asflags-y := -ansi
-#ccflags-y := -Werror

obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o
obj-y += fault_$(BITS).o
diff --git a/arch/sparc/prom/Makefile b/arch/sparc/prom/Makefile
index 397b79af77f7..a1adc75d8055 100644
--- a/arch/sparc/prom/Makefile
+++ b/arch/sparc/prom/Makefile
@@ -3,7 +3,6 @@
# Linux.
#
asflags := -ansi
-ccflags := -Werror

lib-y := bootstr_$(BITS).o
lib-y += init_$(BITS).o


I'll also follow up with patches for the top warnings on mips
and arc, which should make most of the currently failing builds
clean again even with CONFIG_WERROR:

37 arch/mips/kernel/signal.c:903:17: error: no previous prototype for ‘do_notify_resume’ [-Werror=missing-prototypes]
37 arch/mips/kernel/signal.c:673:17: error: no previous prototype for ‘sys_rt_sigreturn’ [-Werror=missing-prototypes]
37 arch/mips/kernel/signal.c:515:5: error: no previous prototype for ‘restore_sigcontext’ [-Werror=missing-prototypes]
37 arch/mips/kernel/signal.c:438:5: error: no previous prototype for ‘setup_sigcontext’ [-Werror=missing-prototypes]
34 arch/mips/kernel/signal.c:636:17: error: no previous prototype for ‘sys_sigreturn’ [-Werror=missing-prototypes]
11 arch/mips/kernel/syscall.c:51:16: error: no previous prototype for ‘sysm_pipe’ [-Werror=missing-prototypes]
8 arch/mips/mm/fault.c:323:17: error: no previous prototype for ‘do_page_fault’ [-Werror=missing-prototypes]
12 arch/arc/kernel/ptrace.c:342:16: warning: no previous prototype for 'syscall_trace_enter' [-Wmissing-prototypes]
5 arch/arc/kernel/kprobes.c:193:15: warning: no previous prototype for 'arc_kprobe_handler' [-Wmissing-prototypes]

Arnd