[U-Boot] [RFC PATCH v1] common: fix building image.c

Tom Rini trini at konsulko.com
Tue Aug 20 11:26:49 UTC 2019


On Tue, Aug 20, 2019 at 10:39:43AM +0000, Igor Opaniuk wrote:
> 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?

I marked it as RFC since you sent it as RFC.  Please re-send without the
RFC tag, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190820/2ff33a77/attachment.sig>


More information about the U-Boot mailing list