Opened 13 years ago

Last modified 8 years ago

#339 closed defect

Dynamic linker needs full TLS support — at Version 1

Reported by: Jiri Svoboda Owned by: Jiri Svoboda
Priority: major Milestone: 0.7.0
Component: helenos/lib/c Version:
Keywords: Cc:
Blocker for: Depends on:
See also:

Description (last modified by Jiri Svoboda)

Currently the dynamic linker can only handle thread-local variables that are static, because it does cannot resolve module numbers in the TLS runtime functions.

Also, thread-local variables can currently only be in one runtime module (the C library) because of the way global symbols are used to measure tdata and tbss sections.

Change History (1)

comment:1 by Jiri Svoboda, 13 years ago

Description: modified (diff)
Owner: changed from Jakub Jermář to Jiri Svoboda
Status: newassigned

There is a special TLS program header that describes the thread-local data section. For this to work tbss should follow tdata (there can be alignment padding between them). From the filesize and memsize of this segment the dynamic loader can derive the beginning and size of tdata and tbss for each module.

Note: See TracTickets for help on using tickets.