This resolves build warnings and failures for architectures where the Linux userspace `asm/types.h` header defines 64-bit types (u64, s64) as `long` instead of `long long`.
By defining `__SANE_USERSPACE_TYPES__`, these types are defined as `long long` instead. Signed-off-by: Thomas Bertschinger <[email protected]> --- Makefile | 1 + include/linux/types.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 6e5d0e5..7363d5d 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,7 @@ CFLAGS+=-std=gnu11 -O2 -g -MMD -Wall -fPIC \ -DNO_BCACHEFS_FS \ -DNO_BCACHEFS_SYSFS \ -DVERSION_STRING='"$(VERSION)"' \ + -D__SANE_USERSPACE_TYPES__ \ $(EXTRA_CFLAGS) # Intenionally not doing the above to $(LDFLAGS) because we rely on diff --git a/include/linux/types.h b/include/linux/types.h index 6ae97c4..004d5eb 100644 --- a/include/linux/types.h +++ b/include/linux/types.h @@ -10,7 +10,9 @@ #include <sys/types.h> #include <linux/posix_types.h> +#ifndef __SANE_USERSPACE_TYPES__ #define __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */ +#endif #include <asm/types.h> #include <linux/cache.h> -- 2.43.0
