[U-Boot] Linker error when using CONFIG_SPL_SYS_MALLOC_SIMPLE=y

Simon Glass sjg at chromium.org
Fri Mar 17 18:24:21 UTC 2017


+ML

Hi Dan,

On 17 March 2017 at 12:16, Dan Murphy <dmurphy at ti.com> wrote:
> Simon
>
> I wanted to drop you a note to see if you have any advice on how to fix this issue.
>
> In the attached .config file we enable
>
> CONFIG_SPL_SYS_MALLOC_SIMPLE and CONFIG_SPL_DFU_SUPPORT which we need CONFIG_SPL_DFU_RAM
>
> When doing this we find that there is a build error
>
> common/built-in.o: In function `xrealloc':
> common/cli_hush.c:3349: undefined reference to `realloc_simple'
> common/built-in.o: In function `done_word':
> common/cli_hush.c:2494: undefined reference to `realloc_simple'
> cli_hush.c:2499: undefined reference to `realloc_simple'
> common/built-in.o: In function `b_check_space':
> common/cli_hush.c:876: undefined reference to `realloc_simple'
> make[1]: *** [spl/u-boot-spl] Error 1
> make: *** [spl/u-boot-spl] Error 2
>
> In digging into this I am finding that realloc_simple is not defined anywhere in uboot.  malloc_simple.c seems
> to be missing the implementation.
>
> I am looking to see if you have a patch that fixes this issue or if you can guide us to a resolution.
>
> Right now our only work around is to disable the HUSH_PARSER or turn off the MALLOC simple.  Which according to
> Lokesh, CC'd, is needed for DM support.

So SPL is using hush? Is there a description somewhere of what it does
with that?

If you have enough space for hush I wonder whether you can just use
full malloc() in SPL? You could implement realloc_simple() by just
calling malloc_simple() and copying the old data over, but it is
inefficient.

Regards,
Simon


More information about the U-Boot mailing list