diff --git a/tools/Makefile b/tools/Makefile
index 3c37316b96f252abd5f934fd7a08a34c666c7bff..02556d4b83f3e44bef980ba0d8748933645a79a1 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -138,6 +138,10 @@ $(STAGING_DIR_HOST)/.prepared: $(TMP_DIR)/.build
 	mkdir -p $(BUILD_DIR_HOST)/stamp $(STAGING_DIR_HOST)/include/sys
 	$(INSTALL_DATA) $(TOPDIR)/tools/include/*.h $(STAGING_DIR_HOST)/include/
 	$(INSTALL_DATA) $(TOPDIR)/tools/include/sys/*.h $(STAGING_DIR_HOST)/include/sys/
+ifneq ($(HOST_OS),Linux)
+	mkdir -p $(STAGING_DIR_HOST)/include/asm
+	$(INSTALL_DATA) $(TOPDIR)/tools/include/asm/*.h $(STAGING_DIR_HOST)/include/asm/
+endif
 	ln -snf lib $(STAGING_DIR_HOST)/lib64
 	touch $@
 
diff --git a/tools/include/asm/types.h b/tools/include/asm/types.h
new file mode 100644
index 0000000000000000000000000000000000000000..2c91232619520833016a12509a1da45035bbeb8c
--- /dev/null
+++ b/tools/include/asm/types.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * asm-generic/int-ll64.h
+ *
+ * Integer declarations for architectures which use "long long"
+ * for 64-bit types.
+ */
+
+#ifndef _ASM_GENERIC_INT_LL64_H
+#define _ASM_GENERIC_INT_LL64_H
+
+typedef __signed__ char __s8;
+
+typedef __signed__ short __s16;
+
+typedef __signed__ int __s32;
+
+#ifdef __GNUC__
+__extension__ typedef __signed__ long long __s64;
+#else
+typedef __signed__ long long __s64;
+#endif
+
+#endif /* _ASM_GENERIC_INT_LL64_H */