[U-Boot] [PATCH v1] dfu: Avoid declaring unused variables and absent parameters

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:
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"

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

On Thu, Mar 14, 2019 at 10:19:58PM +0200, Andy Shevchenko wrote:
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.
Lukasz?
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
-- With Best Regards, Andy Shevchenko
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot

Hi Tom, Andy,
On Thu, Mar 14, 2019 at 10:19:58PM +0200, Andy Shevchenko wrote:
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.
I can only recommend using patman, which shall link the dfu: in topic with my e-mail address,
Lukasz?
Regarding the patch,
Acked-by: Lukasz Majewski lukma@denx.de
If the travis doesn't complain, feel free to apply it.
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
-- With Best Regards, Andy Shevchenko
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de

On Fri, Mar 15, 2019 at 12:28 AM Lukasz Majewski lukma@denx.de wrote:
On Thu, Mar 14, 2019 at 10:19:58PM +0200, Andy Shevchenko wrote:
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.
I can only recommend using patman, which shall link the dfu: in topic with my e-mail address,
It's pity that different projects based on Kbuild infra are using different type of accessing to maintainers data base. I have used get_maintainer.pl.
Lukasz?
Regarding the patch,
Acked-by: Lukasz Majewski lukma@denx.de
If the travis doesn't complain, feel free to apply it.
Thanks!

On Fri, 15 Mar 2019 11:23:38 +0200 Andy Shevchenko andy.shevchenko@gmail.com wrote: ...
I can only recommend using patman, which shall link the dfu: in topic with my e-mail address,
It's pity that different projects based on Kbuild infra are using different type of accessing to maintainers data base. I have used get_maintainer.pl.
get_maintainer.pl failed to report e-mail address since the dfu command code entry is not in the data base file. I've just sent a patch to fix it.
-- Anatolij
participants (5)
-
Anatolij Gustschin
-
Andy Shevchenko
-
Andy Shevchenko
-
Lukasz Majewski
-
Tom Rini