[U-Boot] [RFC PATCH v1] common: fix building image.c
Igor Opaniuk
igor.opaniuk at toradex.com
Tue Aug 20 10:38:30 UTC 2019
Hi Tom,
On Tue, Aug 13, 2019 at 3:44 PM Igor Opaniuk <igor.opaniuk at gmail.com> wrote:
>
> From: Igor Opaniuk <igor.opaniuk at toradex.com>
>
> Wrap image_decomp() and all dependent functions with
> !ifdef(USE_HOSTCC) macro, as this function isn't used by
> any tool from /tools.
>
> Without this it leads to compilation issues (because of
> CONFIG_LZMA from newly added #include <generated/autoconf.h>
> statement, which pulls all these definitions):
>
> In file included from tools/common/image.c:1:0:
> ./tools/../common/image.c: In function ‘image_decomp’:
> ./tools/../common/image.c:428:9: warning: implicit declaration of function
> ‘gunzip’; did you mean ‘munmap’? [-Wimplicit-function-declaration]
> ret = gunzip(load_buf, unc_len, image_buf, &image_len);
> ^~~~~~
> munmap
> ./tools/../common/image.c:450:3: error: unknown type name ‘SizeT’;
> did you mean ‘size_t’?
> SizeT lzma_len = unc_len;
> ^~~~~
> size_t
> ./tools/../common/image.c:452:9: warning: implicit declaration of function
> ‘lzmaBuffToBuffDecompress’ [-Wimplicit-function-declaration]
> ret = lzmaBuffToBuffDecompress(load_buf, &lzma_len,
> ^~~~~~~~~~~~~~~~~~~~~~~~
> scripts/Makefile.host:114: recipe for target 'tools/common/image.o' failed
>
> Fixes: 2aa7f0fa51 ("habv4: tools: Avoid hardcoded CSF size for SPL target")
> Signed-off-by: Igor Opaniuk <igor.opaniuk at toradex.com>
> ---
>
> common/image-fit.c | 5 ++++-
> common/image.c | 3 +--
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/common/image-fit.c b/common/image-fit.c
> index e346fed550..a064f38510 100644
> --- a/common/image-fit.c
> +++ b/common/image-fit.c
> @@ -1728,6 +1728,7 @@ int fit_conf_get_prop_node(const void *fit, int noffset,
> return fit_conf_get_prop_node_index(fit, noffset, prop_name, 0);
> }
>
> +#ifndef USE_HOSTCC
> static int fit_image_select(const void *fit, int rd_noffset, int verify)
> {
> fit_image_print(fit, rd_noffset, " ");
> @@ -1743,6 +1744,7 @@ static int fit_image_select(const void *fit, int rd_noffset, int verify)
>
> return 0;
> }
> +#endif /* USE_HOSTCC */
>
> int fit_get_node_from_config(bootm_headers_t *images, const char *prop_name,
> ulong addr)
> @@ -1771,6 +1773,7 @@ int fit_get_node_from_config(bootm_headers_t *images, const char *prop_name,
> return noffset;
> }
>
> +#ifndef USE_HOSTCC
> /**
> * fit_get_image_type_property() - get property name for IH_TYPE_...
> *
> @@ -2009,6 +2012,7 @@ int fit_image_load(bootm_headers_t *images, ulong addr,
> } else {
> loadbuf = map_sysmem(load, max_decomp_len);
> }
> +
> if (image_decomp(comp, load, data, image_type,
> loadbuf, buf, len, max_decomp_len, &load_end)) {
> printf("Error decompressing %s\n", prop_name);
> @@ -2060,7 +2064,6 @@ int boot_get_setup_fit(bootm_headers_t *images, uint8_t arch,
> return ret;
> }
>
> -#ifndef USE_HOSTCC
> int boot_get_fdt_fit(bootm_headers_t *images, ulong addr,
> const char **fit_unamep, const char **fit_uname_configp,
> int arch, ulong *datap, ulong *lenp)
> diff --git a/common/image.c b/common/image.c
> index 6da0513e8b..315ae89467 100644
> --- a/common/image.c
> +++ b/common/image.c
> @@ -383,6 +383,7 @@ void image_print_contents(const void *ptr)
> }
> }
>
> +#ifndef USE_HOSTCC
> /**
> * print_decomp_msg() - Print a suitable decompression/loading message
> *
> @@ -483,8 +484,6 @@ int image_decomp(int comp, ulong load, ulong image_start, int type,
> return ret;
> }
>
> -
> -#ifndef USE_HOSTCC
> #if CONFIG_IS_ENABLED(LEGACY_IMAGE_FORMAT)
> /**
> * image_get_ramdisk - get and verify ramdisk image
> --
> 2.17.1
>
I saw you archived this patch in Patchwork,
but unfortunately the issue is still actual for
u-boot-imx custodian tree as I'm still facing build issues:
In file included from tools/common/image.c:1:0:
./tools/../common/image.c: In function ‘image_decomp’:
./tools/../common/image.c:429:9: warning: implicit declaration of
function ‘gunzip’; did you mean ‘munmap’?
[-Wimplicit-function-declaration]
ret = gunzip(load_buf, unc_len, image_buf, &image_len);
^~~~~~
munmap
tools/common/image.o: In function `image_decomp':
image.c:(.text+0x297): undefined reference to `gunzip'
collect2: error: ld returned 1 exit status
scripts/Makefile.host:106: recipe for target 'tools/dumpimage' failed
make[1]: *** [tools/dumpimage] Error 1
Makefile:1588: recipe for target 'tools' failed
make: *** [tools] Error 2
Could you please delegate it to Stefano Babic, so he can at least
look into it?
Thanks
--
Best regards - Freundliche Grüsse - Meilleures salutations
Senior Development Engineer,
Igor Opaniuk
Toradex AG
Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48
00 (main line)
More information about the U-Boot
mailing list