[OpenWrt-Devel] [PATCH 8/8] tools/mtd-utils: add cygwin compatibility
Rosen Penev
rosenp at gmail.com
Mon Oct 7 21:02:25 EDT 2019
From: Alexey Loukianov <lx2 at lexa2.ru>
* Add blkpg.h linux header (not available under cygwin) and
patch types.h to reflect cygwin specifics.
* Define __USE_LINUX_IOCTL_DEFS under cygwin.
* Properly handle ".exe" suffix in package makefile.
Signed-off-by: Alexey Loukianov <lx2 at lexa2.ru>
Signed-off-by: Rosen Penev <rosenp at gmail.com>
---
tools/mtd-utils/Makefile | 17 ++++++++++++-
tools/mtd-utils/include/linux/blkpg.h | 35 +++++++++++++++++++++++++++
tools/mtd-utils/include/linux/types.h | 6 +++++
3 files changed, 57 insertions(+), 1 deletion(-)
create mode 100644 tools/mtd-utils/include/linux/blkpg.h
diff --git a/tools/mtd-utils/Makefile b/tools/mtd-utils/Makefile
index e0e083d2b6..8a7ee06b62 100644
--- a/tools/mtd-utils/Makefile
+++ b/tools/mtd-utils/Makefile
@@ -18,6 +18,7 @@ PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/host-build.mk
ifneq ($(HOST_OS),Linux)
+ifneq (CYGWIN,$(findstring CYGWIN,$(HOST_OS)))
HOST_CFLAGS += \
-I$(CURDIR)/include \
-Dloff_t=off_t \
@@ -25,6 +26,14 @@ ifneq ($(HOST_OS),Linux)
-include endian.h \
-DNO_NATIVE_SUPPORT \
-include fls.h
+else
+ HOST_CFLAGS += \
+ -I$(CURDIR)/include \
+ -include endian.h \
+ -DNO_NATIVE_SUPPORT \
+ -include fls.h \
+ -D__USE_LINUX_IOCTL_DEFS
+endif
endif
HOST_CONFIGURE_VARS+= \
@@ -37,8 +46,14 @@ HOST_CONFIGURE_ARGS+= \
--without-zstd \
--without-lzo
+ifeq (CYGWIN,$(findstring CYGWIN,$(HOST_OS)))
+EXEC_SUFFIX:=.exe
+else
+EXEC_SUFFIX:=
+endif
+
HOST_MAKE_FLAGS += \
- PROGRAMS="mkfs.jffs2 ubinize mkfs.ubifs"
+ PROGRAMS="mkfs.jffs2$(EXEC_SUFFIX) ubinize$(EXEC_SUFFIX) mkfs.ubifs$(EXEC_SUFFIX)"
define Host/Install
$(CP) \
diff --git a/tools/mtd-utils/include/linux/blkpg.h b/tools/mtd-utils/include/linux/blkpg.h
new file mode 100644
index 0000000000..7d90fa5d86
--- /dev/null
+++ b/tools/mtd-utils/include/linux/blkpg.h
@@ -0,0 +1,35 @@
+#ifndef __LINUX_BLKPG_H
+#define __LINUX_BLKPG_H
+
+/*#include <linux/ioctl.h> */
+
+#define BLKPG _IO(0x12,105)
+
+/* The argument structure */
+struct blkpg_ioctl_arg {
+ int op;
+ int flags;
+ int datalen;
+ void *data;
+};
+
+/* The subfunctions (for the op field) */
+#define BLKPG_ADD_PARTITION 1
+#define BLKPG_DEL_PARTITION 2
+#define BLKPG_RESIZE_PARTITION 3
+
+/* Sizes of name fields. Unused at present. */
+#define BLKPG_DEVNAMELTH 64
+#define BLKPG_VOLNAMELTH 64
+
+/* The data structure for ADD_PARTITION and DEL_PARTITION */
+struct blkpg_partition {
+ long long start; /* starting offset in bytes */
+ long long length; /* length in bytes */
+ int pno; /* partition number */
+ char devname[BLKPG_DEVNAMELTH]; /* partition name, like sda5 or c0d1p2,
+ to be used in kernel messages */
+ char volname[BLKPG_VOLNAMELTH]; /* volume label */
+};
+
+#endif /* __LINUX_BLKPG_H */
diff --git a/tools/mtd-utils/include/linux/types.h b/tools/mtd-utils/include/linux/types.h
index 559fac7a2c..0b28190fb1 100644
--- a/tools/mtd-utils/include/linux/types.h
+++ b/tools/mtd-utils/include/linux/types.h
@@ -5,7 +5,13 @@
typedef uint16_t __u16;
typedef uint32_t __u32;
+
+#if defined(__CYGWIN__)
+typedef __signed__ long long __s64;
+typedef unsigned long long __u64;
+#else
typedef uint64_t __u64;
+#endif
typedef __u16 __le16;
typedef __u32 __le32;
--
2.17.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list