Increased RAM usage after upgrade to newlib 4.3.0
Sebastian Huber
sebastian.huber@embedded-brains.de
Thu Feb 23 06:02:51 GMT 2023
Hello Patrick,
On 17.02.23 20:10, Patrick Bader wrote:
> 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.
this regression is probably a side-effect of the support for splitting
up the struct _reent into individual thread-local storage objects. See
the --enable-newlib-reent-thread-local configuration option.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the Newlib
mailing list