Re: [PATCH 15/17] arch: fix asm-offsets.c building with -Wmissing-prototypes

From: Arnd Bergmann
Date: Sat Aug 12 2023 - 03:46:42 EST


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