[gcc] Enable TLS support for RTEMS in libstdc++

Joel Sherrill joel at rtems.org
Thu Jun 9 13:58:59 UTC 2022


On Thu, Jun 9, 2022 at 2:12 AM Chris Johns <chrisj at rtems.org> wrote:

> On 9/6/2022 4:16 pm, Sebastian Huber wrote:
> > On 08/06/2022 16:18, Sebastian Huber wrote:
> >> On 08/06/2022 16:11, Joel Sherrill wrote:
> >>> On Wed, Jun 8, 2022 at 8:47 AM Sebastian Huber
> >>> <sebastian.huber at embedded-brains.de
> >>> <mailto:sebastian.huber at embedded-brains.de>> wrote:
> >>>
> >>>     On 08/06/2022 15:39, Joel Sherrill wrote:
> >>>      > Is TLS actually supported on all targets except MIPS?
> >>>
> >>>     I only added MIPS since this target has a fundamental issue with
> the
> >>>     TLS
> >>>     support.
> >>>
> >>>     Which target would you also exclude?
> >>>
> >>> About half of them.
> >>
> >> It seems to be only bfin, lm32, moxie, or1k, and v850. Are these
> targets still
> >> in use? Do we have a maintainer for these targets?
> >
> > How do we want to proceed here? Add them to the exclude list in the GCC
> > configuration, or encourage current or future users of these targets to
> add the
> > TLS support so that they can use state of the art C++ support? The
> initial TLS
> > support for RTEMS was added in 2013, so this is not really brand new
> technology.
>
> I think we should support TLS in C++ for the targets we know work and any
> others
> can use the eh_globals support. It does work and works OK with POSIX keys.
>
> How we document this is probability a more pressing question? I cannot see
> any
> language specific areas in the User or Classic API manuals.
>

I thought there were tickets for this.

NIOS II - https://devel.rtems.org/ticket/4214

I also thought I had written up a master list of this at one point. I can't
find more
than the above. But it should have been close to above.

There isn't a good place in the Classic API Guide for this and I am not sure
where it would go in the User Guide. There are a few features which are not
supported on all architectures -- TLS, SMP, and paravirtualization come to
mind. Distributed multiprocessing is supported but only a few BSPs support
it.

The CPU Supplement has a section for each port on Thread Local Storage.
My first cut suggestion would be to ensure each port has a section that it
is or is not supported. If it isn't supported, link to a ticket specific to
that
architecture with keyword TLS. Copy the ticket contents for each
architecture
and make sure update the CPU Supplement is part of it.

Is there anywhere else it would not get lost?

--joel


> Chris
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20220609/7cfb5aaa/attachment.htm>


More information about the devel mailing list