swab.h uses __always_inline without including the header where it is defined, this is exposed by musl based distributions where this macro is not defined by system C library headers unlike glibc where it is defined in sys/cdefs.h and that header gets pulled in indirectly via
features.h -> sys/cdefs.h and features.h gets pulled in a lot of headers. Therefore it may work in cases where features.h is includes but not otherwise. Adding linux/stddef.h here ensures that __always_inline is always defined independent of which C library is used in userspace Signed-off-by: Khem Raj <raj.k...@gmail.com> Cc: Philippe Ombredanne <pombreda...@nexb.com> Cc: Kate Stewart <kstew...@linuxfoundation.org> Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org> Cc: Thomas Gleixner <t...@linutronix.de> --- include/uapi/linux/swab.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h index 23cd84868cc3..acddbe50a20d 100644 --- a/include/uapi/linux/swab.h +++ b/include/uapi/linux/swab.h @@ -3,6 +3,7 @@ #define _UAPI_LINUX_SWAB_H #include <linux/types.h> +#include <linux/stddef.h> #include <linux/compiler.h> #include <asm/swab.h> -- 2.19.0