Re: [PATCH] x86: fix -Wmissing-prototypes warning

From: Ingo Molnar
Date: Thu Nov 22 2018 - 06:15:08 EST



* wang.yi59@xxxxxxxxxx <wang.yi59@xxxxxxxxxx> wrote:

> Hi Ingo,
>
> > * Yi Wang <wang.yi59@xxxxxxxxxx> wrote:
> >
> > > We may get -Wmissing-prototypes warnings when building
> > > kernel with W=1, it's better to fix them as global function
> > > signature can be changed and caller who use the old unchanged
> > > prototypes will be hosed.
> > >
> > > This patch fixes most of -Wmissing-prototypes warnings which
> > > are in the root directory of arch/x86/kernel, not including
> > > the subdirectories.
> > >
> > > These are the warnings fixed in this patch:
> > > arch/x86/kernel/signal.c:865:17: warning: no previous prototype for âsys32_x32_rt_sigreturnâ [-Wmissing-prototypes]
>
> ......
>
> > > include/linux/ftrace.h | 3 +++
> > > include/linux/kexec.h | 1 +
> > > include/linux/of_fdt.h | 1 +
> > > include/linux/ptrace.h | 1 +
> > > 24 files changed, 55 insertions(+), 3 deletions(-)
> >
> > Breaks 32-bit compilation:
> >
> > ../arch/x86/include/asm/setup.h: Assembler messages:
> > ../arch/x86/include/asm/setup.h:30: Error: no such instruction: `unsigned long __startup_64(unsigned long physaddr,struct boot_params *bp)'
> >
> > I'll skip the setup.h bits - let's hope that's the only bug.
>
> Sorry for the inconvenience, though I have checked carefully :-)
>
> How do you produce this error? I tested this way but did not reproduce
> that error:
> # make allmodconfig
> # make -j8
>
> Thanks for your time again!

I don't remember the exact config, but you could try the 32-bit
allnoconfig and defconfig.

Note that the commands you used above will use the 64-bit kernel, not the
32-bit kernel.

Thanks,

Ingo