Re: [PATCH 1/5] sched: make struct task_struct::state 32-bit

From: Peter Zijlstra
Date: Mon Feb 08 2021 - 12:19:43 EST


On Mon, Feb 08, 2021 at 05:52:45PM +0300, Alexey Dobriyan wrote:
> On Mon, Feb 08, 2021 at 05:30:25PM +0300, Alexey Dobriyan wrote:
> > On Mon, Feb 08, 2021 at 11:34:18AM +0100, Peter Zijlstra wrote:
> > > On Sat, Feb 06, 2021 at 06:18:32PM +0300, Alexey Dobriyan wrote:
> > >
> > > > Silently delete "extern" from prototypes.
> > >
> > > NAK, extern is right.
> >
> > Extern is only necessary for variables.
>
> Specifically C17, 6.2.2 p5 (linkage of identifiers):
>
> if the declaration of an identifier for a function has no
> storage-class specifier, its linkage is determined exactly as if
> it were declared with the storage-class specifier "extern".
>
> This is why nothing happens if "extern" is deleted.

I know, but I still very much like extern on the function declarations
too. It tells me the definition isn't to be found in this TU.