[U-Boot] [PATCH 3/3] fw_env: fix building w/out a config.h

Joe Hershberger joe.hershberger at gmail.com
Sat Dec 15 19:04:40 CET 2012


Hi Mike

On Sat, Nov 10, 2012 at 11:47 PM, Mike Frysinger <vapier at gentoo.org> wrote:
> Signed-off-by: Mike Frysinger <vapier at gentoo.org>
> ---
>  tools/env/Makefile | 11 ++++++++++-
>  tools/env/fw_env.h | 25 -------------------------
>  2 files changed, 10 insertions(+), 26 deletions(-)
>
> diff --git a/tools/env/Makefile b/tools/env/Makefile
> index ab73c8c..62a113a 100644
> --- a/tools/env/Makefile
> +++ b/tools/env/Makefile
> @@ -24,7 +24,7 @@
>  include $(TOPDIR)/config.mk
>
>  HOSTSRCS := $(SRCTREE)/lib/crc32.c  fw_env.c  fw_env_main.c
> -HEADERS        := fw_env.h $(OBJTREE)/include/config.h
> +HEADERS        := fw_env.h

I think this is the wrong approach.  We depend on the config.h being
included and the entire default env being available.  If you want to
get this behavior, I suggest you detect if there is a configured
board, and if so, include the config.h, and if not, bake in the bit
you need to cope with not having one.

>  # Compile for a hosted environment on the target
>  HOSTCPPFLAGS  = -idirafter $(SRCTREE)/include \
> @@ -33,6 +33,15 @@ HOSTCPPFLAGS  = -idirafter $(SRCTREE)/include \
>                 -DUSE_HOSTCC \
>                 -DTEXT_BASE=$(TEXT_BASE)
>
> +# Pass CONFIG_xxx settings via the command line so that we can build w/out
> +# a config.h file existing in the first place.  Useful for generic builds.
> +CONFIG_VARS_TO_PASS = \
> +       ENV_OVERWRITE \
> +       OVERWRITE_ETHADDR_ONCE \
> +       ETHADDR

This doesn't look very maintainable, and it doesn't even include the
variables currently used.

> +HOSTCPPFLAGS += \
> +       $(foreach x,$(CONFIG_VARS_TO_PASS),$(if $(CONFIG_$(x)),-DCONFIG_$(x)=$(CONFIG_$(x))))
> +
>  ifeq ($(MTD_VERSION),old)
>  HOSTCPPFLAGS += -DMTD_OLD
>  endif
> diff --git a/tools/env/fw_env.h b/tools/env/fw_env.h
> index a1a6807..19703c7 100644
> --- a/tools/env/fw_env.h
> +++ b/tools/env/fw_env.h
> @@ -21,15 +21,6 @@
>   * MA 02111-1307 USA
>   */
>
> -/* Pull in the current config to define the default environment */
> -#ifndef __ASSEMBLY__
> -#define __ASSEMBLY__ /* get only #defines from config.h */
> -#include <config.h>
> -#undef __ASSEMBLY__
> -#else
> -#include <config.h>
> -#endif
> -
>  /*
>   * To build the utility with the static configuration
>   * comment out the next line.
> @@ -52,22 +43,6 @@
>  #define DEVICE2_ENVSECTORS     2
>  #endif
>
> -#ifndef CONFIG_BAUDRATE
> -#define CONFIG_BAUDRATE                115200
> -#endif
> -
> -#ifndef CONFIG_BOOTDELAY
> -#define CONFIG_BOOTDELAY       5       /* autoboot after 5 seconds     */
> -#endif
> -
> -#ifndef CONFIG_BOOTCOMMAND
> -#define CONFIG_BOOTCOMMAND                                                     \
> -       "bootp; "                                                               \
> -       "setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} "        \
> -       "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; "   \
> -       "bootm"
> -#endif
> -

I agree that some of this should be cleaned up, but not as a result of
removing the config.h.

>  extern int   fw_printenv(int argc, char *argv[]);
>  extern char *fw_getenv  (char *name);
>  extern int fw_setenv  (int argc, char *argv[]);
> --
> 1.7.12.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

NAK

Thanks,
-Joe


More information about the U-Boot mailing list