[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