Linker error when using CONFIG_SPL_SYS_MALLOC_SIMPLE=y
+ML
Hi Dan,
Quoted 20 lines · Dan Murphy
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_SIMPLEandCONFIG_SPL_DFU_SUPPORTwhich we needCONFIG_SPL_DFU_RAMWhen doing this we find that there is a build error
common/built-in.o: In function `xrealloc':common/cli_hush.c:3349: undefined reference torealloc_simple' common/built-in.o: In functiondone_word':common/cli_hush.c:2494: undefined reference torealloc_simple' cli_hush.c:2499: undefined reference torealloc_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
Quoted 7 lines
In digging into this I am finding that
realloc_simpleis not defined anywhere in uboot.malloc_simple.cseems 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_PARSERor 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
Simon
Quoted 28 lines · Simon Glass
+ML
Hi Dan,
Quoted 23 lines · Dan Murphy
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_SIMPLEandCONFIG_SPL_DFU_SUPPORTwhich we needCONFIG_SPL_DFU_RAMWhen doing this we find that there is a build error
common/built-in.o: In function `xrealloc':common/cli_hush.c:3349: undefined reference torealloc_simple' common/built-in.o: In functiondone_word':common/cli_hush.c:2494: undefined reference torealloc_simple' cli_hush.c:2499: undefined reference torealloc_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 2In digging into this I am finding that
realloc_simpleis not defined anywhere in uboot.malloc_simple.cseems to be missing the implementation.
Quoted 6 lines
Quoted 4 lines
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_PARSERor 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.
Quoted 4 lines
If you have enough space for hush I wonder whether you can just use full
malloc()in SPL? You could implementrealloc_simple()by just callingmalloc_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?
Dan
Quoted 2 lines
Regards,
Simon
Signature · 2 lines
------------------ Dan Murphy
Hi Dan,
Quoted 40 lines · Dan Murphy
Simon
Quoted 28 lines · Simon Glass
+ML
Hi Dan,
Quoted 23 lines · Dan Murphy
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_SIMPLEandCONFIG_SPL_DFU_SUPPORTwhich we needCONFIG_SPL_DFU_RAMWhen doing this we find that there is a build error
common/built-in.o: In function `xrealloc':common/cli_hush.c:3349: undefined reference torealloc_simple' common/built-in.o: In functiondone_word':common/cli_hush.c:2494: undefined reference torealloc_simple' cli_hush.c:2499: undefined reference torealloc_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 2In digging into this I am finding that
realloc_simpleis not defined anywhere in uboot.malloc_simple.cseems to be missing the implementation.Quoted 6 lines
Quoted 4 lines
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_PARSERor 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_PARSERwas added to the TI config in commitadad96e60configs: Re-sync HUSH options.
Quoted 7 lines
HUSH calls realloc in the builtin functions. I am not sure what SPL would do with the HUSH.
Quoted 4 lines
If you have enough space for hush I wonder whether you can just use full
malloc()in SPL? You could implementrealloc_simple()by just callingmalloc_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.
Right, but the point of simple malloc() is to be simple, and realloc() is assumed not to be needed until you have a proper malloc().
Quoted 6 lines
Lokesh
Do we run out of room using full malloc support in the SPL with the DM code added?
Dan
Regards,
Simon
Simon
Quoted 44 lines · Simon Glass
Hi Dan,
Quoted 41 lines · Dan Murphy
Simon
Quoted 28 lines · Simon Glass
+ML
Hi Dan,
Quoted 23 lines · Dan Murphy
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_SIMPLEandCONFIG_SPL_DFU_SUPPORTwhich we needCONFIG_SPL_DFU_RAMWhen doing this we find that there is a build error
common/built-in.o: In function `xrealloc':common/cli_hush.c:3349: undefined reference torealloc_simple' common/built-in.o: In functiondone_word':common/cli_hush.c:2494: undefined reference torealloc_simple' cli_hush.c:2499: undefined reference torealloc_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 2In digging into this I am finding that
realloc_simpleis not defined anywhere in uboot.malloc_simple.cseems to be missing the implementation.Quoted 6 lines
Quoted 4 lines
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_PARSERor 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_PARSERwas added to the TI config in commitadad96e60configs: Re-sync HUSH options.HUSH calls realloc in the builtin functions. I am not sure what SPL would do with the HUSH.
Quoted 7 lines
Quoted 5 lines
Quoted 4 lines
If you have enough space for hush I wonder whether you can just use full
malloc()in SPL? You could implementrealloc_simple()by just callingmalloc_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.
Right, but the point of simple
malloc()is to be simple, andrealloc()is assumed not to be needed until you have a propermalloc().
By proper malloc you mean the dlmalloc code?
If thats true then why is realloc even defined in the simple malloc case?
Dan
Quoted 7 lines
Quoted 5 lines
Lokesh
Do we run out of room using full malloc support in the SPL with the DM code added?
Dan
Regards,
Simon
Signature · 2 lines
------------------ Dan Murphy
Hi Dan,
Quoted 51 lines · Dan Murphy
Simon
Quoted 48 lines · Simon Glass
Hi Dan,
Quoted 45 lines · Dan Murphy
Simon
Quoted 28 lines · Simon Glass
+ML
Hi Dan,
Quoted 23 lines · Dan Murphy
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_SIMPLEandCONFIG_SPL_DFU_SUPPORTwhich we needCONFIG_SPL_DFU_RAMWhen doing this we find that there is a build error
common/built-in.o: In function `xrealloc':common/cli_hush.c:3349: undefined reference torealloc_simple' common/built-in.o: In functiondone_word':common/cli_hush.c:2494: undefined reference torealloc_simple' cli_hush.c:2499: undefined reference torealloc_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 2In digging into this I am finding that
realloc_simpleis not defined anywhere in uboot.malloc_simple.cseems to be missing the implementation.Quoted 6 lines
Quoted 4 lines
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_PARSERor 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_PARSERwas added to the TI config in commitadad96e60configs: Re-sync HUSH options.HUSH calls realloc in the builtin functions. I am not sure what SPL would do with the HUSH.
Quoted 4 lines
If you have enough space for hush I wonder whether you can just use full
malloc()in SPL? You could implementrealloc_simple()by just callingmalloc_simple()and copying the old data over, but it is inefficient.
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
We could work around it but the undef reference will still exist for other code that would need realloc.
Right, but the point of simple
malloc()is to be simple, andrealloc()is assumed not to be needed until you have a propermalloc().By proper malloc you mean the dlmalloc code?
If thats true then why is realloc even defined in the simple malloc case?
To avoid it trying to use realloc(). Perhaps instead of a link error it should be defined to some sort of error message?
Regards,
Simon
Quoted 46 lines · Dan Murphy
Simon
Quoted 28 lines · Simon Glass
+ML
Hi Dan,
Quoted 23 lines · Dan Murphy
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_SIMPLEandCONFIG_SPL_DFU_SUPPORTwhich we needCONFIG_SPL_DFU_RAMWhen doing this we find that there is a build error
common/built-in.o: In function `xrealloc':common/cli_hush.c:3349: undefined reference torealloc_simple' common/built-in.o: In functiondone_word':common/cli_hush.c:2494: undefined reference torealloc_simple' cli_hush.c:2499: undefined reference torealloc_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 2In digging into this I am finding that
realloc_simpleis not defined anywhere in uboot.malloc_simple.cseems to be missing the implementation.Quoted 6 lines
Quoted 4 lines
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_PARSERor 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_PARSERwas added to the TI config in commitadad96e60configs: Re-sync HUSH options.HUSH calls realloc in the builtin functions. I am not sure what SPL would do with the HUSH.
Quoted 4 lines
If you have enough space for hush I wonder whether you can just use full
malloc()in SPL? You could implementrealloc_simple()by just callingmalloc_simple()and copying the old data over, but it is inefficient.
Quoted 5 lines
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
Hi Lokesh,
Quoted 59 lines · Dan Murphy
Quoted 56 lines
Simon
Quoted 31 lines · Simon Glass
+ML
Hi Dan,
Quoted 26 lines · Dan Murphy
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_SIMPLEandCONFIG_SPL_DFU_SUPPORTwhich we needCONFIG_SPL_DFU_RAMWhen doing this we find that there is a build error
common/built-in.o: In function `xrealloc':common/cli_hush.c:3349: undefined reference torealloc_simple' common/built-in.o: In functiondone_word':common/cli_hush.c:2494: undefined reference torealloc_simple' cli_hush.c:2499: undefined reference torealloc_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 2In digging into this I am finding that
realloc_simpleis not defined anywhere in uboot.malloc_simple.cseems to be missing the implementation.Quoted 8 lines
Quoted 6 lines
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_PARSERor 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_PARSERwas added to the TI config in commitadad96e60configs:
Re-sync HUSH options.HUSH calls realloc in the builtin functions. I am not sure what SPL would do with the HUSH.
Quoted 4 lines
If you have enough space for hush I wonder whether you can just use full
malloc()in SPL? You could implementrealloc_simple()by just callingmalloc_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.
Quoted 7 lines
Quoted 4 lines
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.
It depends if you plan to use SPI before SDRAM is initialized. The .bss section (and dlmalloc.c pool) starts from 0x80a0 0000. Only the .data section is allocated in SRAM.
I2C (which is used to read EEPROM config data) on the other hand do not require malloc to be operational.
Quoted 2 lines
But it is unnecessary overhead ti size of SPL. I still did not understand why
HUSH_PARSERis needed for SPL.
I might probably answer to this question. IIRC, the SPL_DFU support uses HUSH to work.
Quoted 7 lines
Thanks and regards,
Lokesh
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
https://lists.denx.de/listinfo/u-boot
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Quoted 66 lines · Lukasz Majewski
Hi Lokesh,
Quoted 64 lines · Dan Murphy
Quoted 60 lines
Simon
Quoted 31 lines · Simon Glass
+ML
Hi Dan,
Quoted 26 lines · Dan Murphy
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_SIMPLEandCONFIG_SPL_DFU_SUPPORTwhich we needCONFIG_SPL_DFU_RAMWhen doing this we find that there is a build error
common/built-in.o: In function `xrealloc':common/cli_hush.c:3349: undefined reference torealloc_simple' common/built-in.o: In functiondone_word':common/cli_hush.c:2494: undefined reference torealloc_simple' cli_hush.c:2499: undefined reference torealloc_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 2In digging into this I am finding that
realloc_simpleis not defined anywhere in uboot.malloc_simple.cseems to be missing the implementation.Quoted 8 lines
Quoted 6 lines
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_PARSERor 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_PARSERwas added to the TI config in commitadad96e60configs:
Re-sync HUSH options.HUSH calls realloc in the builtin functions. I am not sure what SPL would do with the HUSH.
Quoted 4 lines
If you have enough space for hush I wonder whether you can just use full
malloc()in SPL? You could implementrealloc_simple()by just callingmalloc_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?
Quoted 6 lines
Quoted 2 lines
No, we should be able to use full malloc support in SPL in case of DRA7xx/AM57xx.
It depends if you plan to use SPI before SDRAM is initialized. The .bss section (and
dlmalloc.cpool) starts from0x80a00000. Only the .data section is allocated in SRAM.
That's right and in case of DRA7xx SPI is not being used before SDRAM is initialized. I verified that it works boots fine if MALLOC simple is disabled.
Thanks and regards,
Lokesh
Quoted 31 lines
I2C (which is used to read EEPROM config data) on the other hand do not require malloc to be operational.
Quoted 2 lines
But it is unnecessary overhead ti size of SPL. I still did not understand why
HUSH_PARSERis needed for SPL.I might probably answer to this question. IIRC, the
SPL_DFUsupport uses HUSH to work.Quoted 7 lines
Thanks and regards,
Lokesh
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
https://lists.denx.de/listinfo/u-bootBest regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de