Increased RAM usage after upgrade to newlib 4.3.0
Fri Feb 17 19:10:55 GMT 2023
Dear newlib group members,
I have just updated my firmware from newlib 4.2.0 to newlib 4.3.0 from
the Arch Linux packages and found out that static memory consumption
rose by about 300 bytes due to the standard input and output streams.
However, I am not using these streams, but am using dynamic memory,
which is using the _reent struct internally.
As I found out, this struct is always populated with the global __sf
file descriptors in the 4.3.0 version of newlib, which are about 300
bytes in total.
The library is built with --enable-newlib-reent-small with the nano.spec
and in the 4.2.0 version, _reent is initialized with some fake file
descriptors: "__sf_fake_stdin,..." which are way smaller.
Those fake versions are missing in newlib 4.3.0 and the __sf descriptors
are used always.
Is this intended behaviour or a regression? If it is intended, is there
a way or some flag to get rid of the extra 300 bytes?
I also do not need all those functions to be reentrant, but found no
compilation parameter to turn this off.
Thank you in advance for your help.
More information about the Newlib