From 960fd8546fb0130058e6a588fbc62d696d01df0e Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 28 Jan 2014 11:52:17 +0100 Subject: bsps: Thread-local storage (TLS) for linkcmds --- c/src/lib/libbsp/m68k/sim68000/startup/linkcmds | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'c/src/lib/libbsp/m68k/sim68000') diff --git a/c/src/lib/libbsp/m68k/sim68000/startup/linkcmds b/c/src/lib/libbsp/m68k/sim68000/startup/linkcmds index eeae18b9e3..9744f50beb 100644 --- a/c/src/lib/libbsp/m68k/sim68000/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/sim68000/startup/linkcmds @@ -108,7 +108,25 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } - .data 0x80000 : AT (ADDR(.text) + SIZEOF (.text)) { + + .tdata ADDR(.text) + SIZEOF (.text) : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } + + .tbss ADDR(.tdata) + SIZEOF (.tdata) : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } + + _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin; + _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin; + _TLS_Size = _TLS_BSS_end - _TLS_Data_begin; + _TLS_Alignment = ALIGNOF (.tdata); + + .data 0x80000 : AT (ADDR(.tdata) + SIZEOF (.tdata)) { PROVIDE (_copy_start = .); *(.data*) *(.gnu.linkonce.d*) -- cgit v1.2.3