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

Lokesh Vutla lokeshvutla at ti.com
Mon Mar 20 03:31:34 UTC 2017



On Saturday 18 March 2017 12:03 AM, Dan Murphy wrote:
> Simon
> 
> On 03/17/2017 01:24 PM, Simon Glass wrote:
>> +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?
> 
> HUSH_PARSER was added to the TI config in commit adad96e60 configs: Re-sync HUSH options.
> 
> HUSH calls realloc in the builtin functions.  I am not sure what SPL would do with the HUSH.
> 
>> 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.
> We could work around it but the undef reference will still exist for other code that would need realloc.
> 
> Lokesh
> 
> Do we run out of room using full malloc support in the SPL with the DM code added?

No, we should be able to use full malloc support in SPL in case of
DRA7xx/AM57xx. But it is unnecessary overhead ti size of SPL. I still
did not understand why HUSH_PARSER is needed for SPL.

Thanks and regards,
Lokesh


More information about the U-Boot mailing list