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

Stefano Babic sbabic at denx.de
Sun Mar 27 11:40:00 CEST 2016


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 at denx.de>
> Signed-off-by: Andreas Fenkart <andreas.fenkart at 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

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list