Re: [PATCH] uapi/linux/stddef.h: Provide __always_inline to userspace headers

From: Josh Boyer
Date: Wed Mar 30 2016 - 16:00:42 EST


On Tue, Mar 29, 2016 at 6:14 PM, Denys Vlasenko <dvlasenk@xxxxxxxxxx> wrote:
> Recent change to uapi/linux/swab.h needs this.
>
> Unfortunately, UAPI headers don't include compiler.h and fixing it there is not enough.
>
> Tested. Testcase: "make headers_install" and try to compile this:
>
> #include <linux/swab.h>
> void main() {}
>
> Signed-off-by: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
> CC: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>
> CC: Thomas Graf <tgraf@xxxxxxx>
> CC: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> CC: David Rientjes <rientjes@xxxxxxxxxx>
> CC: Arnd Bergmann <arnd@xxxxxxxx>
> CC: Ingo Molnar <mingo@xxxxxxxxxx>
> CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> CC: linux-kernel@xxxxxxxxxxxxxxx
> ---
> include/uapi/linux/stddef.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/include/uapi/linux/stddef.h b/include/uapi/linux/stddef.h
> index aa9f104..621fa8a 100644
> --- a/include/uapi/linux/stddef.h
> +++ b/include/uapi/linux/stddef.h
> @@ -1 +1,5 @@
> #include <linux/compiler.h>
> +
> +#ifndef __always_inline
> +#define __always_inline inline
> +#endif

This does appear to fix the compile failure, so from that point of
view you can add:

Tested-by: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>

if you'd like.

One thing I did notice that is somewhat unrelated is that the
installed linux/stddef.h is devoid of any header guards. So it is a
file that literally just has the hunk you've patched in and doesn't
have the somewhat standard:

#ifndef _UAPI_LINUX_STDDEF_H
#define _UAPI_LINUX_STDDEF_H

...

#endif

I'm not sure how important that is, but it might be nice to add for
consistency's sake.

josh