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

From: Arnd Bergmann
Date: Thu Apr 30 2020 - 09:42:20 EST


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.

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

Arnd