Re: tinyconfig: kernel/time/timekeeping.c:286:1: error: no return statement in function returning non-void [-Werror=return-type]

From: Adrian Hunter
Date: Wed Apr 10 2024 - 09:03:33 EST


On 10/04/24 13:56, Naresh Kamboju wrote:
> The powerpc,s390, superSh and sparc tinyconfig builds failed due to
> following build
> warnings / errors on the Linux next-20240410 with gcc-13 and gcc-11.
>
> List build failures:
> ---
> * s390, build
> - gcc-13-tinyconfig - failed
> - gcc-8-tinyconfig - failed
>
> * sh, build
> - gcc-11-tinyconfig - failed
>
> * sparc, build
> - gcc-11-tinyconfig - failed
>
> * mips, build
> - gcc-12-tinyconfig - failed
> - gcc-8-tinyconfig - failed
>
> * powerpc, build
> - gcc-13-tinyconfig - failed
> - gcc-8-tinyconfig - failed
>
> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
>
> Build log:
> --------
> kernel/time/timekeeping.c: In function 'timekeeping_debug_get_ns':
> kernel/time/timekeeping.c:286:1: error: no return statement in
> function returning non-void [-Werror=return-type]
> 286 | }
> | ^
> cc1: some warnings being treated as errors

Using unreachable() in the default BUG() seems to make this go
away.

diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index 6e794420bd39..891bd9b0be70 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -156,7 +156,7 @@ extern __printf(1, 2) void __warn_printk(const char *fmt, ...);

#else /* !CONFIG_BUG */
#ifndef HAVE_ARCH_BUG
-#define BUG() do {} while (1)
+#define BUG() do { do {} while (1) ; unreachable(); } while (0)
#endif

#ifndef HAVE_ARCH_BUG_ON


>
> steps to reproduce:
> ---
> # tuxmake --runtime podman --target-arch powerpc --toolchain gcc-13
> --kconfig tinyconfig
>
> Links:
> - https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240410/testrun/23380322/suite/build/test/gcc-13-tinyconfig/details/
> - https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240410/testrun/23380301/suite/build/test/gcc-11-tinyconfig/history/
> - https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20240410/testrun/23380301/suite/build/tests/
>
> --
> Linaro LKFT
> https://lkft.linaro.org