[PATCH][ARM]Honour __heap_limit__ during _sbrk() memory allocation checking.
Renlin Li
renlin.li@arm.com
Tue Feb 17 06:20:00 GMT 2015
Hi all,
HeapInfo is returned when SYS_HEAPINFO Angel semihost call is triggered,
the following data will be returned.
struct block {
int heap_base;
int heap_limit;
int stack_base;
int stack_limit;
};
the heap_limit should be honoured while doing dynamic memory allocation.
Currently, _sbrk() does a simple check by comparing the heap end against
stack pointer. This is not enough, if __heap_limit is valid, it also
should be used to predicate whether enough heap memory is there to be
allocated.
libstdc++v3, gcc regression tests are checked using arm-none-eabi
toolchain, on new issues.
Okay to commit?
Actually, aarch64 target also has the same problem. In addition,
__heap_base__ is not used either. I will come up with a patch later.
libgloss/ChangeLog:
2015-02-13 Renlin Li <renlin.li@arm.com>
* arm/crt0.S: Initialise __heap_limit when ARM_RDI_MONITOR is defined.
* arm/syscalls.c: define __heap_limit global symbol.
* arm/syscalls.c (_sbrk): Honour __heap_limit.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: new-1.diff
Type: text/x-patch
Size: 1138 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20150217/bcfd45dc/attachment.bin>
More information about the Newlib
mailing list