This makes __always_inline match glibc's cdefs.h file, which prevents redefinition errors which can happen e.g., if glibc limits.h is included before kvm-unit-tests compiler.h. Signed-off-by: Nicholas Piggin <npiggin@xxxxxxxxx> --- I ran into this with some powerpc patches. I since changed include ordering in that series so it no longer depends on this change, but it might be good to have this to be less fragile. Thanks, Nick lib/linux/compiler.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/linux/compiler.h b/lib/linux/compiler.h index 6f565e4..bf3313b 100644 --- a/lib/linux/compiler.h +++ b/lib/linux/compiler.h @@ -45,7 +45,14 @@ #define barrier() asm volatile("" : : : "memory") -#define __always_inline inline __attribute__((always_inline)) +/* + * As glibc's sys/cdefs.h does, this undefines __always_inline because + * Linux's stddef.h kernel header also defines it in an incompatible + * way. + */ +#undef __always_inline +#define __always_inline __inline __attribute__ ((__always_inline__)) + #define noinline __attribute__((noinline)) #define __unused __attribute__((__unused__)) -- 2.37.2