malloc() fails to compile with --enable-newlib-reent-thread-local

Corinna Vinschen vinschen@redhat.com
Fri Feb 3 12:11:53 GMT 2023


On Feb  2 19:51, H. Peter Anvin wrote:
> Hi,
> 
> as of newlib-4.3.0 (git 9e09d6ed83cce4777a5950412647ccc603040409) malloc()
> fails to compile with the following options set:
> 
>         --disable-newlib-fseek-optimization \
>         --disable-newlib-fvwrite-in-streamio \
>         --disable-newlib-mb \
>         --disable-newlib-reent-check-verify \
>         --disable-newlib-register-fini \
>         --disable-newlib-supplied-syscalls \
>         --disable-newlib-unbuf-stream-opt \
>         --disable-newlib-wide-orient \
>         --enable-lite-exit \
>         --enable-target-optspace \
>         --enable-newlib-multithread \
>         --enable-newlib-global-atexit \
>         --enable-newlib-nano-formatted-io \
>         --enable-newlib-io-c99-formats \
>         --enable-newlib-reent-thread-local \
>         --enable-newlib-nano-malloc
> 
> (same effect without --enable-newlib-nano-malloc).
> 
> The reason is that the malloc() routines appear to hard-code the use of
> "reent_ptr->_errno" instead of using _REENT_ERRNO(), but if I'm not
> completely out to sea it really shouldn't be using "reent_ptr" at all,
> similar to the !_LIBC case?

Yeah, looks like it.  Patches welcome!


Thanks,
Corinna



More information about the Newlib mailing list