On Mon, Feb 28, 2022 at 10:41 PM Fangrui Song maskray@google.com wrote:
More precisely, the semantics of "extern inline" functions changed between ISO C90 and ISO C99.
Perhaps a clearer explanation to readers is: "extern inline" and "inline" swap semantics with gnu_inline (-fgnu89-inline or __attribute__((__gnu_inline__))).
That's the only concern I have, which I doubt is an issue. The kernel is already covered by the function attribute as you note.
Just to have some measure: $ git grep -rn "extern inline" | wc -l 116
"^inline" behaves like C99+ "extern inline"
Agree this is handled by
#define inline inline __gnu_inline __inline_maybe_unused notrace
Ok, I've reworded it again, but kept it a bit shorter, I don't think we need the full explanation in this patch description in the end.
Thanks,
Arnd