Hi Miguel,
On Sun, Oct 7, 2018 at 6:18 AM Miguel Ojeda miguel.ojeda.sandonis@gmail.com wrote:
On Fri, Oct 5, 2018 at 10:35 AM Arnd Bergmann arnd@arndb.de wrote:
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.
I think marking the function as static __used should do the trick and would be less confusing.
I tried __used, but I still see the warning.
masahiro@grover:~/ref/linux$ git diff diff --git a/kernel/bounds.c b/kernel/bounds.c index c373e88..aee0101 100644 --- a/kernel/bounds.c +++ b/kernel/bounds.c @@ -13,7 +13,7 @@ #include <linux/log2.h> #include <linux/spinlock_types.h>
-void foo(void) +void __used foo(void) { /* The enum constants to put into include/generated/bounds.h */ DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS); masahiro@grover:~/ref/linux$ make W=1 prepare CC kernel/bounds.s kernel/bounds.c:16:13: warning: no previous prototype for ‘foo’ [-Wmissing-prototypes] void __used foo(void) ^ CC arch/x86/kernel/asm-offsets.s