On Sat, Aug 12, 2023, at 00:12, Masahiro Yamada wrote: > On Sat, Aug 12, 2023 at 3:30 AM Arnd Bergmann <arnd@xxxxxxxxxx> wrote: >> >> From: Arnd Bergmann <arnd@xxxxxxxx> >> >> When -Wmissing-prototypes is enabled, the some asm-offsets.c files fail >> to build, even when this warning is disabled in the Makefile for normal >> files: >> >> arch/sparc/kernel/asm-offsets.c:22:5: error: no previous prototype for 'sparc32_foo' [-Werror=missing-prototypes] >> arch/sparc/kernel/asm-offsets.c:48:5: error: no previous prototype for 'foo' [-Werror=missing-prototypes] >> >> Address this by making use of the same trick we have on other architectures, >> renaming the unused global function to main(), which has an implicit >> prototype. > > > main() only works for one function call, but > there are some cases where splitting the code > into some functions makes the code cleaner. Right, I went with main() as that is already used on a couple of architectures. >> On loongarch, there are many functions in this file, so the trick does >> not work, adding explicit declarations works around it in a slightly >> more ugly way but is the best I could come up with here. > > I do not like repeating the function names. > > Could you try "static + __used" as in > arch/x86/kernel/asm-offsets.c ? Sure, that should work, I had not noticed x86 doing it like this and I agree it's slightly nicer. In this case, Thomas Bogendoerfer already merged my patch for MIPS in 6.5. The loongarch file I change here is a copy of the same file, so we probably want them to stay consistent, either keeping my change for now, or reworking mips along the same lines. Arnd