Hi!
I know that you don't like --enable-newlib-reent-small, but there are other newlib options that seem to make sense for small targets. Could you tell my why you don't use them in your toolchain?
--disable-newlib-atexit-alloc disable dynamic allocation of atexit entries
You also have --enable-newlib-register-fini, while this usually makes no sense - in all programs I've wrote for ARM "if (&__libc_fini)" is always false, and even if it wouldn't be I have __libc_fini_array() call in startup, after return from main(). As usually the functions registered with atexit() (or similar) have to be executed explicitly in your own _exit() it really makes no sense to pull that whole code in - I have yet to see an program for microcontroller that does anything else than while(1); in _exit()...
That's why I'd initially think it makes sense to use --disable-newlib-register-fini...
BTW - are the new additions to newlib that you created going to be used for your toolchain in the future?
--disable-newlib-fvwrite-in-streamio disable iov in streamio
--disable-newlib-fseek-optimization disable fseek optimization
--disable-newlib-wide-orient Turn off wide orientation in streamio
Thx for your opinions!