The original implementation had multiple issues: - Only worked when posix_memalign was available (Linux, RTEMS). - Violated C11 link namespace rules by calling posix_memalign. - Failed to set errno on error. These can be fixed by essentially using the same implementation for aligned_alloc as for memalign, i.e. simply calling _memalign_r (which is always available and a "more reserved name" although technically still not in the reserved link namespace, at least code written in c cannot define a colliding symbol, newlib has plenty such namespace issues so this is fine). It is not clear what the right policy is when MALLOC_PROVIDED is set, currently that does not cover aligned_alloc so it is kept that way. Tested on aarch64-none-elf |
||
---|---|---|
.. | ||
argz | ||
ctype | ||
errno | ||
iconv | ||
include | ||
locale | ||
machine | ||
misc | ||
posix | ||
reent | ||
search | ||
signal | ||
ssp | ||
stdio | ||
stdio64 | ||
stdlib | ||
string | ||
sys | ||
syscalls | ||
time | ||
unix | ||
xdr | ||
Makefile.am | ||
Makefile.in | ||
aclocal.m4 | ||
configure | ||
configure.in | ||
libc.in.xml | ||
libc.texinfo | ||
saber | ||
sys.tex |