On Fri, Oct 5, 2018 at 10:52 AM David Laight <[email protected]> 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

Reply via email to