[U-Boot] [PATCH] tools: env: bug: config structs must be defined in tools library

fw_senten/fw_printenv can be compiled as a tools library, excluding the fw_env_main object.
Reported-by: Stefano Babic sbabic@denx.de Signed-off-by: Andreas Fenkart andreas.fenkart@digitalstrom.com --- tools/env/fw_env.c | 4 ++++ tools/env/fw_env_main.c | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index ee17a69..2533dc4 100644 --- a/tools/env/fw_env.c +++ b/tools/env/fw_env.c @@ -34,6 +34,10 @@
#include "fw_env.h"
+struct common_args common_args; +struct printenv_args printenv_args; +struct setenv_args setenv_args; + #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
#define WHITESPACE(c) ((c == '\t') || (c == ' ')) diff --git a/tools/env/fw_env_main.c b/tools/env/fw_env_main.c index 4bd4216..3065de9 100644 --- a/tools/env/fw_env_main.c +++ b/tools/env/fw_env_main.c @@ -49,10 +49,6 @@ static struct option long_options[] = { {NULL, 0, NULL, 0} };
-struct common_args common_args; -struct printenv_args printenv_args; -struct setenv_args setenv_args; - void usage_printenv(void) {

Hi Andreas,
On 25/03/2016 14:52, Andreas Fenkart wrote:
fw_senten/fw_printenv can be compiled as a tools library, excluding the fw_env_main object.
Reported-by: Stefano Babic sbabic@denx.de Signed-off-by: Andreas Fenkart andreas.fenkart@digitalstrom.com
tools/env/fw_env.c | 4 ++++ tools/env/fw_env_main.c | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index ee17a69..2533dc4 100644 --- a/tools/env/fw_env.c +++ b/tools/env/fw_env.c @@ -34,6 +34,10 @@
#include "fw_env.h"
+struct common_args common_args; +struct printenv_args printenv_args; +struct setenv_args setenv_args;
This solves linking, but this makes the functions not reentrant. What about to pass the parameters to the exported functions without any global structure ?
#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
#define WHITESPACE(c) ((c == '\t') || (c == ' ')) diff --git a/tools/env/fw_env_main.c b/tools/env/fw_env_main.c index 4bd4216..3065de9 100644 --- a/tools/env/fw_env_main.c +++ b/tools/env/fw_env_main.c @@ -49,10 +49,6 @@ static struct option long_options[] = { {NULL, 0, NULL, 0} };
-struct common_args common_args; -struct printenv_args printenv_args; -struct setenv_args setenv_args;
void usage_printenv(void) {
Best regards, Stefano Babic

On Fri, Mar 25, 2016 at 02:52:19PM +0100, Andreas Fenkart wrote:
fw_senten/fw_printenv can be compiled as a tools library, excluding the fw_env_main object.
Reported-by: Stefano Babic sbabic@denx.de Signed-off-by: Andreas Fenkart andreas.fenkart@digitalstrom.com
Applied to u-boot/master, thanks!
participants (3)
-
Andreas Fenkart
-
Stefano Babic
-
Tom Rini