[U-Boot] [PATCH] mkimage: Fix generating multi and script images again

Marek Vasut marex at denx.de
Mon Dec 7 18:01:54 CET 2015


Seems 6ae6e160 broke creating multi and script type images and even
building of mkimage itself. There are two problems with that patch.

First is that expression (!(x == 0) || !(x == 1)) is always true for
unsigned int x. The expression must use AND (&&) not OR (||) to be
correct.

Second is the coding which causes gcc 4.9.x and newer scream gruesome
death and murder. The expression !x == 0 && !x == 1 is ambiguous and
should instead be rewritten into (x != 0) && (x != 1) to be correct.
The parenthesis are added for clarity.

Signed-off-by: Marek Vasut <marex at denx.de>
Cc: Tom Rini <trini at konsulko.com>
Cc: Philippe De Swert <philippedeswert at gmail.com>
Cc: Simon Glass <sjg at chromium.org>
---
 tools/mkimage.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/mkimage.c b/tools/mkimage.c
index ae01cb1..8f8b6df 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -311,8 +311,7 @@ NXTARG:		;
 		exit (retval);
 	}
 
-	if (!params.type == IH_TYPE_MULTI ||
-	    !params.type == IH_TYPE_SCRIPT) {
+	if ((params.type != IH_TYPE_MULTI) && (params.type != IH_TYPE_SCRIPT)) {
 		dfd = open(params.datafile, O_RDONLY | O_BINARY);
 		if (dfd < 0) {
 			fprintf(stderr, "%s: Can't open %s: %s\n",
-- 
2.1.4



More information about the U-Boot mailing list