Re: Remaining randconfig objtool warnings, linux-next-20200428

From: Josh Poimboeuf
Date: Thu Apr 30 2020 - 10:34:10 EST


On Thu, Apr 30, 2020 at 03:41:56PM +0200, Arnd Bergmann wrote:
> On Thu, Apr 30, 2020 at 1:28 AM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> >
> > On Wed, Apr 29, 2020 at 06:11:15PM -0500, Josh Poimboeuf wrote:
> > > > We can probably move those SYS_NI() instances to kernel/sys_ni.c,
> > > > which does not include the header, but it's still a bit ugly. I'll try
> > > > that tomorrow
> > > > unless you come up with a better suggestion first.
> > >
> > > Oh I guess arm32 doesn't have SYS_NI defined. All this syscall aliasing
> > > stuff is a total mystery to me.
> >
> > Another idea would be to split up syscalls.h into two files: one for
> > SYSCALL_* macros and one for sys_*() function prototypes. It sounds
> > like the latter aren't needed by most header files anyway.
> >
> > * Please note that these prototypes here are only provided for information
> > * purposes, for static analysis, and for linking from the syscall table.
> > * These functions should not be called elsewhere from kernel code.
>
> To me the main purpose of the header is to ensure the calling conventions
> are sane, so I'd definitely want to see the declarations included whenever
> a syscall is defined. I would also expect to see a warnig from sparse, or
> from gcc with "make W=1" when an extern function is defined with no
> prior declaration.

Yup, makes sense. I think I've been getting confused by the syscall
wrappers.

> How hard would it be to change objtool instead of changing the sources?

It might be a little tricky, but I can look into it.

--
Josh