#2468 closed defect (fixed)

Add Thread Local Storage (TLS) support on x86

Reported by: Joel Sherrill Owned by: Sebastian Huber
Priority: normal Milestone: 5.1
Component: arch/i386 Version:
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

The x86 is one of the architectures which does not support Thread Local Storage. Each architecture requires target architecture specific support to provide this standard language feature.

Details on the implementation by the compiler may be found at http://wiki.osdev.org/Thread_Local_Storage.

Based on this information, I think a segment register needs to be added to the thread context and some hooks to the TLS implemented.

Architecture information on TLS implementation should be added to the CPU Supplement document as this is part of the ABI and context switch.

As part of effort, the documentation for the general procedure of adding target specific TLS support should be added to the porting guide or reviewed.

Change History (8)

comment:2 Changed on Feb 15, 2017 at 2:20:42 PM by Sebastian Huber

Milestone: 4.12Indefinite
Owner: set to Needs Funding
Status: newassigned

comment:3 Changed on Jun 12, 2017 at 9:07:42 AM by Sebastian Huber <sebastian.huber@…>

In cb0d9a0/rtems:

i386: Move _CPU_Context_Initialize()

Update #2468.

comment:4 Changed on Jun 12, 2017 at 9:08:08 AM by Sebastian Huber <sebastian.huber@…>

In 7b0c74ff/rtems:

i386: Support thread-local storage (TLS)

Update #2468.

comment:5 Changed on Jun 12, 2017 at 9:10:26 AM by Sebastian Huber

Component: Generalcpukit
Milestone: Indefinite4.12.0
Owner: changed from Needs Funding to Sebastian Huber
Status: assignedaccepted
Version: 4.12

comment:6 Changed on Jun 12, 2017 at 9:10:43 AM by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: acceptedclosed

In 44c9e33/rtems-docs:

cpu-supplement: Update TLS support status

Close #2468.

comment:7 Changed on Oct 16, 2017 at 6:19:06 AM by Sebastian Huber

Component: scorearch/i386

comment:8 Changed on Nov 9, 2017 at 6:27:14 AM by Sebastian Huber

Milestone: 4.12.05.1

Milestone renamed

Note: See TracTickets for help on using tickets.