Increased RAM usage after upgrade to newlib 4.3.0
Pavel V. Melnikov
paul.v.melnikov@gmail.com
Tue Jan 20 10:44:31 GMT 2026
Dear Sebastian and newlib group!
While trying to upgrade my ARM toolchain from GCC 9 to 12, I've
encountered the same problem that is discussed in this thread, i.e.
RAM usage suddenly increased by around 300b without changes in the
code and compiler flags. I traced it to an extra __sf symbol in the
linker map file. I couldn't find any non-hacky solution online, but
found some people encountering it as well, e.g. here:
https://stackoverflow.com/questions/78635407
In my project I don't use stdio functions, and __sf objects are pulled
if I use `snprintf` function, which, to my understanding, does not
need stdio FDs to work. It seems it's used because it's referenced in
impure.c and reent implementation.
I'm using an ARM MCU with only 4Kb of RAM and would very much like to
avoid spending extra 300b on things I don't use.
My question is whether there was any development on this since this
topic was raised in 2023. Can you suggest a way to drop the stdio fds
when not using stdio in newer newlib (4.3+)? Since you mentioned it's
a regression, could this be considered for a fix in future versions?
___________________________________
Best wishes,
Paul Melnikov,
R&D Engineer, IMEC NL
More information about the Newlib
mailing list