[RTEMS Project] #4920: libdl does not support TLS

RTEMS trac trac at rtems.org
Mon Feb 19 03:48:29 UTC 2024


#4920: libdl does not support TLS
---------------------------+---------------------
 Reporter:  Chris Johns    |       Owner:  (none)
     Type:  defect         |      Status:  new
 Priority:  normal         |   Milestone:  6.1
Component:  lib/dl         |     Version:  6
 Severity:  blocker        |  Resolution:
 Keywords:  qualification  |  Blocked By:
 Blocking:                 |
---------------------------+---------------------

Comment (by Kinsey Moore):

 Status update:

 bfin, lm32, moxie:
 Generated code uses emutls_get_address() to get the TLS base address. This
 is not yet implemented by _CPU_Get_TLS_thread_pointer().



 mips:
 Generated code uses the rdhwr instruction. This instruction is not yet
 used by _CPU_Get_TLS_thread_pointer() and, even if it were, RTEMS does not
 support it. There is no known way to prevent gcc from using this
 instruction to retrieve the TLS base address. This requires emulation of
 this instruction by RTEMS kernel code, possibly using
 RTEMS_EXCEPTION_EXENSIONS which are not yet available for this platform.
 There are at least 3 subtasks required to get this working on mips:
 * usage of rdhwr in _CPU_Get_TLS_thread_pointer()
 * implementation of RTEMS_EXCEPTION_EXENSIONS or equivalent
 * usage of the above to emulate rdhwr



 v850:
 Slated for removal as stated above, not considered.



 or1k, sh, sparc64, x86_64:
 These do not support dynamic loading and are not being considered for this
 ticket.



 aarch64, arm, i386, m68k, microblaze, nios2, powerpc, riscv, sparc:
 _CPU_Get_TLS_thread_pointer() is implemented and expected to function
 correctly.

--
Ticket URL: <http://devel.rtems.org/ticket/4920#comment:29>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list