
On Mon, Mar 04, 2019 at 04:04:44PM +0200, Andy Shevchenko wrote:
The compiler is not happy when neither USB nor TFTP transport for DFU defined:
cmd/dfu.c: In function ‘do_dfu’: cmd/dfu.c:31:8: warning: unused variable ‘devstring’ [-Wunused-variable] char *devstring = argv[3]; ^~~~~~~~~ cmd/dfu.c:30:8: warning: unused variable ‘interface’ [-Wunused-variable] char *interface = argv[2]; ^~~~~~~~~
Surround those variables by #ifdef expression.
More serious, that comes under same circumstances, is a compilation error due to absence of macro parameter:
Any comments on this?
I don't know who is the right person to push this forward, please, feel free to Cc to the right one, or tell me to resend with proper Cc list.
In file included from include/image.h:45, from include/common.h:35, from cmd/dfu.c:13: include/command.h:207:24: error: expected expression before ‘,’ token # define _CMD_HELP(x) x, ^ include/command.h:286:18: note: in expansion of macro ‘_CMD_HELP’ _cmd, _usage, _CMD_HELP(_help) _CMD_COMPLETE(_comp) } ^~~~~~~~~ include/command.h:290:3: note: in expansion of macro ‘U_BOOT_CMD_MKENT_COMPLETE’ U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ include/command.h:332:2: note: in expansion of macro ‘U_BOOT_CMD_COMPLETE’ U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, NULL) ^~~~~~~~~~~~~~~~~~~ cmd/dfu.c:70:1: note: in expansion of macro ‘U_BOOT_CMD’ U_BOOT_CMD(dfu, CONFIG_SYS_MAXARGS, 1, do_dfu, ^~~~~~~~~~ make[1]: *** [scripts/Makefile.build:279: cmd/dfu.o] Error 1 make: *** [Makefile:1518: cmd] Error 2
Put empty string unconditionally to have macro parameter present.
Fixes: 0f44d33536a5 ("dfu: Fix up the Kconfig mess") Cc: Marek Vasut marek.vasut@gmail.com Signed-off-by: Andy Shevchenko andriy.shevchenko@linux.intel.com
cmd/dfu.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/cmd/dfu.c b/cmd/dfu.c index 4adb91c1b0..498a30b33b 100644 --- a/cmd/dfu.c +++ b/cmd/dfu.c @@ -27,8 +27,10 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #ifdef CONFIG_DFU_OVER_USB char *usb_controller = argv[1]; #endif +#if defined(CONFIG_DFU_OVER_USB) || defined(CONFIG_DFU_OVER_TFTP) char *interface = argv[2]; char *devstring = argv[3]; +#endif
int ret = 0; #ifdef CONFIG_DFU_OVER_TFTP @@ -67,6 +69,7 @@ done:
U_BOOT_CMD(dfu, CONFIG_SYS_MAXARGS, 1, do_dfu, "Device Firmware Upgrade",
- ""
#ifdef CONFIG_DFU_OVER_USB #ifdef CONFIG_DFU_TIMEOUT "<USB_controller> <interface> <dev> [list|timeout]\n" -- 2.20.1