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