[U-Boot] [PATCH] tools: Fix mingw tools build

Vladimir Yakovlev nagos at inbox.ru
Sat Jul 7 22:05:06 CEST 2012


mkenvimage does not build due to missed os_support.o and unsupported
file modes S_IRGRP S_IWGRP.
Tested with mingw 4.2.1 on ubuntu 12.04.

Signed-off-by: Vladimir Yakovlev <nagos at inbox.ru>
---
 tools/Makefile     |    3 ++-
 tools/mkenvimage.c |   10 ++++++++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/tools/Makefile b/tools/Makefile
index 8993fdd..8fa6f85 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -194,7 +194,8 @@ $(obj)xway-swap-bytes$(SFX):	$(obj)xway-swap-bytes.o
 	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
 	$(HOSTSTRIP) $@
 
-$(obj)mkenvimage$(SFX):	$(obj)crc32.o $(obj)mkenvimage.o
+$(obj)mkenvimage$(SFX):	$(obj)crc32.o $(obj)mkenvimage.o \
+	$(obj)os_support.o
 	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
 	$(HOSTSTRIP) $@
 
diff --git a/tools/mkenvimage.c b/tools/mkenvimage.c
index bfc4eb6..c879e5d 100644
--- a/tools/mkenvimage.c
+++ b/tools/mkenvimage.c
@@ -45,6 +45,13 @@
 
 #define CRC_SIZE sizeof(uint32_t)
 
+#ifdef __MINGW32__
+#define FILE_PERM		(S_IRUSR | S_IWUSR)
+#else
+#define FILE_PERM		(S_IRUSR | S_IWUSR | S_IRGRP |\
+					     S_IWGRP)
+#endif
+
 static void usage(const char *exec_name)
 {
 	fprintf(stderr, "%s [-h] [-r] [-b] [-p <byte>] -s <environment partition size> -o <output> <input file>\n"
@@ -292,8 +299,7 @@ int main(int argc, char **argv)
 	if (!bin_filename || strcmp(bin_filename, "-") == 0) {
 		bin_fd = STDOUT_FILENO;
 	} else {
-		bin_fd = creat(bin_filename, S_IRUSR | S_IWUSR | S_IRGRP |
-					     S_IWGRP);
+		bin_fd = creat(bin_filename, FILE_PERM);
 		if (bin_fd == -1) {
 			fprintf(stderr, "Can't open output file \"%s\": %s\n",
 					bin_filename, strerror(errno));
-- 
1.7.9.5



More information about the U-Boot mailing list