The wordsize.h header file and the __WORDSIZE definition do not seem to be universal, the musl libc for instance has the definition in a different header file. This breaks compilation of kvmtool against musl. The two leading underscores suggest a compiler-internal symbol anyway, so let's just remove that particular macro usage entirely, and replace it with the number we really want: the size of a "long" type. Reported-by: J. Neuschäfer <j.neuschaefer@xxxxxxx> Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> --- Hi, can someone test this on a proper/pure musl installation? I tested this with Ubuntu's musl-gcc wrapper, but this didn't show the problem before, so I guess there are subtle differences. Cheers, Andre include/linux/bitops.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/include/linux/bitops.h b/include/linux/bitops.h index ae33922f5..ee8fd5609 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -1,15 +1,13 @@ #ifndef _KVM_LINUX_BITOPS_H_ #define _KVM_LINUX_BITOPS_H_ -#include <bits/wordsize.h> - #include <linux/kernel.h> #include <linux/compiler.h> #include <asm/hweight.h> -#define BITS_PER_LONG __WORDSIZE #define BITS_PER_BYTE 8 -#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long)) +#define BITS_PER_LONG (BITS_PER_BYTE * sizeof(long)) +#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_LONG) #define BIT_WORD(nr) ((nr) / BITS_PER_LONG) -- 2.25.1