Heavy SysInit Dependency

Sebastian Huber sebastian.huber at embedded-brains.de
Wed May 19 14:05:07 UTC 2021


On 19/05/2021 15:09, Joel Sherrill wrote:
> On Wed, May 19, 2021 at 3:54 AM Sebastian Huber 
> <sebastian.huber at embedded-brains.de 
> <mailto:sebastian.huber at embedded-brains.de>> wrote:
> 
>     On 19/05/2021 10:23, Chris Johns wrote:
>      >> On 19 May 2021, at 5:28 pm, Sebastian
>     Huber<sebastian.huber at embedded-brains.de
>     <mailto:sebastian.huber at embedded-brains.de>>  wrote:
>      >>
>      >> I am not sure how the dependency chain can be fixed with the
>     current struct _reent approach of Newlib. A modern approach would be
>     to replace this structure with individual thread-local objects. This
>     would be technically feasible, however, a lot of work.
>      > Do you mean the _reent structure is expanded out into separate
>     TLS elements?
> 
>     Yes, something like:
> 
>     thread_local int errno;
> 
> 
> On paper this would work but most architectures do not have TLS
> support from RTEMS right now. On top of that, I honestly can't tell
> in GCC how TLS is implemented on many architectures. If there is
> a generic pattern, I'd be happy to be educated?

The most relevant architectures have TLS support, at least: arm, 
powerpc, sparc, nios2, m68k.

The arm GCC target has a -mtp=soft option. This approach would work an 
any target. You just have to add the GCC/llvm support for this for all 
targets which need it.

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at 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 devel mailing list