[PATCH 00/14] Add --enable-newlib-reent-thread-local option

Corinna Vinschen vinschen@redhat.com
Tue Jul 12 14:45:22 GMT 2022


On Jul 12 13:18, Sebastian Huber wrote:
> On 21/06/2022 14:49, Sebastian Huber wrote:
> > By default, Newlib uses a huge object of type struct _reent to store
> > thread-specific data.  This object is returned by __getreent() if the
> > __DYNAMIC_REENT__ Newlib configuration option is defined.
> > 
> > The reentrancy structure contains for example errno and the standard input,
> > output, and error file streams.  This means that if an application only uses
> > errno it has a dependency on the file stream support even if it does not use
> > it.  This is an issue for lower end targets and applications which need to
> > qualify the software according to safety standards (for example ECSS-E-ST-40C,
> > ECSS-Q-ST-80C, IEC 61508, ISO 26262, DO-178, DO-330, DO-333).
> > 
> > If the new _REENT_THREAD_LOCAL configuration option is enabled, then struct
> > _reent is replaced by dedicated thread-local objects for each struct _reent
> > member.  The thread-local objects are defined in translation units which use
> > the corresponding object.
> > 
> > Patches 1 to 13 contain no functional changes (hopefully).  They just introduce
> > macros to be able to use struct _reent members or thread-local objects
> > depending on the new _REENT_THREAD_LOCAL option.  Patch 14 adds the new
> > configuration option.
> 
> Are there any general objections to integrate this patch set?

Only that neither Jeff nor I reviewed the patchset yet.


Corinna



More information about the Newlib mailing list