Re: Increased RAM usage after upgrade to newlib 4.3.0
Sebastian Huber <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
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: [email protected] 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/