Re: [PATCH] sh: Drop -Werror from kernel Makefile

From: Gustavo A. R. Silva
Date: Sat Aug 10 2019 - 00:43:35 EST




On 8/9/19 11:31 PM, Gustavo A. R. Silva wrote:
>
>
> On 8/9/19 11:20 PM, Joe Perches wrote:
>> On Fri, 2019-08-09 at 21:47 -0500, Gustavo A. R. Silva wrote:
>>> On 8/9/19 4:56 PM, Guenter Roeck wrote:
>>>> On Fri, Aug 09, 2019 at 04:36:01PM -0500, Gustavo A. R. Silva wrote:
>>>>> On 8/9/19 2:56 PM, Guenter Roeck wrote:
>>>>>> On Sun, Aug 04, 2019 at 11:24:41PM -0400, Rich Felker wrote:
>>>>>>> On Sun, Aug 04, 2019 at 07:14:23PM -0700, Guenter Roeck wrote:
>>>>>>>> Since commit a035d552a93b ("Makefile: Globally enable fall-through
>>>>>>>> warning"), all sh builds fail with errors such as
>>>>>>>>
>>>>>>>> arch/sh/kernel/disassemble.c: In function 'print_sh_insn':
>>>>>>>> arch/sh/kernel/disassemble.c:478:8: error: this statement may fall through
>>>>>>>>
>>>>>>>> Since this effectively disables all build and boot tests for the
>>>>>>>> architecture, let's drop -Werror from the sh kernel Makefile until
>>>>>>>> the problems are fixed.
>> []
>>> On second thought it seems to me that this is not a good idea, at least
>>> for mainline. For the time being I'll take this patch for linux-next only.
>>>
>>> Who is the maintainer of sh?
>>
>> But whoever it may be, isn't particularly active.
>>
>> MAINTAINERS-SUPERH
>> MAINTAINERS-M: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
>> MAINTAINERS-M: Rich Felker <dalias@xxxxxxxx>
>> MAINTAINERS-L: linux-sh@xxxxxxxxxxxxxxx
>> MAINTAINERS-Q: http://patchwork.kernel.org/project/linux-sh/list/
>> MAINTAINERS-S: Maintained
>> MAINTAINERS-F: Documentation/sh/
>> MAINTAINERS:F: arch/sh/
>> MAINTAINERS-F: drivers/sh/
>>
>>> The best solution is to fix those fall-through warnings you see. Could you
>>> please send me all the warnings you see? I can try to fix them.
>>
>> It's true it's a warning, but adding -Werror is rarely
>> a good idea as gcc error output can change with every
>> version.
>>
>
> In the meantime I'll install sh4 and fix those warnings.
>

Well, I think it has paid off. It seems there is an ancient bug right there:

diff --git a/arch/sh/kernel/hw_breakpoint.c b/arch/sh/kernel/hw_breakpoint.c
index 3bd010b4c55f..f10d64311127 100644
--- a/arch/sh/kernel/hw_breakpoint.c
+++ b/arch/sh/kernel/hw_breakpoint.c
@@ -157,6 +157,7 @@ int arch_bp_generic_fields(int sh_len, int sh_type,
switch (sh_type) {
case SH_BREAKPOINT_READ:
*gen_type = HW_BREAKPOINT_R;
+ break;
case SH_BREAKPOINT_WRITE:
*gen_type = HW_BREAKPOINT_W;
break;

--
Gustavo