All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>,
	Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	stable <stable@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-kbuild <linux-kbuild@vger.kernel.org>
Subject: Re: [PATCH] kbuild: fix kernel/bounds.c 'W=1' warning
Date: Mon, 8 Oct 2018 16:41:01 +0200	[thread overview]
Message-ID: <CAMuHMdXv62=+jvFDb8w2vms4Zt4xm3Sf2K1i0BX7-1cwEtdCCA@mail.gmail.com> (raw)
In-Reply-To: <CAK7LNAQNhMhoCXSRDQVrNkTLUyLO0_xYJm1o_dyao0-rSbpwzA@mail.gmail.com>

On Mon, Oct 8, 2018 at 4:33 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> On Mon, Oct 8, 2018 at 7:01 PM Kieran Bingham
> <kieran.bingham+renesas@ideasonboard.com> wrote:
> > On 06/10/18 23:06, Masahiro Yamada wrote:
> > > On Sun, Oct 7, 2018 at 6:58 AM Masahiro Yamada
> > > <yamada.masahiro@socionext.com> wrote:
> > >>
> > >> 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
> > >
> > >
> > >
> > > Sorry, I forgot to add 'static'.
> > >
> > > Adding both static and __used worked for me,
> > > and I like the idea.
> > >
> >
> > Aha - I'd also tried converting to static in my earlier attempts, but
> > didn't realise we had __used!
> >
> > updating as "static __used" causes the following diff:
> >
> > diff -Nurp bounds.s.foo bounds.s.static-used
> > --- bounds.s.foo        2018-10-05 10:20:53.269941404 +0100
> > +++ bounds.s.static-used        2018-10-08 10:51:18.079309049 +0100
> > @@ -110,7 +110,6 @@
> >  #NO_APP
> >         .align  2
> >         .p2align 3,,7
> > -       .global foo
> >         .type   foo, %function
> >  foo:
> >         stp     x29, x30, [sp, -16]!    //,,,
> >
> >
> > I'd say this is a pretty good alternative fix - however I see Arnd's
> > version is already on it's way though akpm's tree...
> >
> > https://ozlabs.org/~akpm/mmots/broken-out/kbuild-fix-kernel-boundsc-w%3D1-warning.patch
> >
> > Anyway, as long as one of the variants gets there I'll be happy :)
>
>
> I will leave it to Arnd.
>
>
> When we fix arch/{mips,sparc}/kernel/asm-offsets.c,
> 'static __used' is just additions.
>
> The 'main(void)' solution would require a little bit restructuring.
>
>
>
> FWIW, with my quick analysis, the following should be fixed as well:
>
> arch/alpha/kernel/asm-offsets.c
> arch/c6x/kernel/asm-offsets.c
> arch/ia64/kernel/asm-offsets.c
> arch/ia64/kernel/nr-irqs.c
> arch/mips/kernel/asm-offsets.c
> arch/riscv/kernel/asm-offsets.c
> arch/sparc/kernel/asm-offsets.c
> arch/x86/kernel/asm-offsets.c
> arch/x86/um/shared/sysdep/kernel-offsets.h
> samples/bpf/syscall_nrs.c

All the other asm-offsets.c files already use "int main(void)" ;-)

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

  reply	other threads:[~2018-10-08 14:41 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-21 14:22 [PATCH] kernel/bounds: Provide prototype for foo Kieran Bingham
2018-09-21 14:45 ` Greg Kroah-Hartman
2018-09-21 15:58   ` Kieran Bingham
2018-09-21 16:03     ` Kieran Bingham
2018-10-05  8:33 ` [PATCH] kbuild: fix kernel/bounds.c 'W=1' warning Arnd Bergmann
2018-10-05  8:47   ` Kieran Bingham
2018-10-05  8:52   ` David Laight
2018-10-05  8:52     ` David Laight
2018-10-05  9:07     ` Arnd Bergmann
2018-10-05  9:27       ` Kieran Bingham
2018-10-06 20:31   ` Masahiro Yamada
2018-10-06 21:18   ` Miguel Ojeda
2018-10-06 21:58     ` Masahiro Yamada
2018-10-06 22:06       ` Masahiro Yamada
2018-10-08 10:00         ` Kieran Bingham
2018-10-08 14:32           ` Masahiro Yamada
2018-10-08 14:41             ` Geert Uytterhoeven [this message]
2018-10-06 22:07       ` Miguel Ojeda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMuHMdXv62=+jvFDb8w2vms4Zt4xm3Sf2K1i0BX7-1cwEtdCCA@mail.gmail.com' \
    --to=geert@linux-m68k.org \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=miguel.ojeda.sandonis@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.