Hi Arnd,
On 05/10/18 09:33, Arnd Bergmann wrote:
Building any configuration with 'make W=1' produces a warning:
kernel/bounds.c:16:6: warnign: no previous prototype for 'foo' [-Wmissing-prototypes]
s/warnign/warning/ but I don't think that's too important :D
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.
Aha - even better! (and annoyingly fairly obvious, from the Why-didn't-I-think-of-that department).
Reported-by: Kieran Bingham kieran.bingham+renesas@ideasonboard.com Cc: stable@vger.kernel.org Signed-off-by: Arnd Bergmann arnd@arndb.de
Reviewed-by: Kieran Bingham kieran.bingham+renesas@ideasonboard.com
I have run into this problem several times before, and thought I had sent a fix at some point. Looking in the archives, I came across the suggested fix from Kieran, so I'm following up on that here.
kernel/bounds.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/bounds.c b/kernel/bounds.c index c373e887c066..9795d75b09b2 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) +int main(void) { /* The enum constants to put into include/generated/bounds.h */ DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS); @@ -23,4 +23,6 @@ void foo(void) #endif DEFINE(SPINLOCK_SIZE, sizeof(spinlock_t)); /* End of constants */
- return 0;
}