On Fri, Oct 5, 2018 at 10:52 AM David Laight David.Laight@aculab.com wrote:
From: Arnd Bergmann
Sent: 05 October 2018 09:33
Building any configuration with 'make W=1' produces a warning:
kernel/bounds.c:16:6: warnign: no previous prototype for 'foo' [-Wmissing-prototypes]
When also passing -Werror, this prevents us from building any other files. Nobody ever calls the function, but we can't make it 'static' either since we want the compiler output.
Calling it 'main' instead however avoids the warning, because gcc does not insist on having a declaration for main.
Ugg. main() might be special in other ways too. It wouldn't surprise me if some linkers don't do special stuff for it.
What is wrong with just putting and extra "void foo(void);" before the function?
Greg objected to that on the basis that we don't want declarations in .c files -- they should be in a shared header:
https://lkml.org/lkml/2018/9/21/735
I don't see what could go wrong here with calling it main(), after all we are just interested in the assembler output, not even creating an object file.
Arnd