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/arm/gba/startup/linkcmds | 33 ++++++++++++++----------------- 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'c/src/lib/libbsp/arm/gba') diff --git a/c/src/lib/libbsp/arm/gba/startup/linkcmds b/c/src/lib/libbsp/arm/gba/startup/linkcmds index 4765e04e96..6c97ed8fbe 100644 --- a/c/src/lib/libbsp/arm/gba/startup/linkcmds +++ b/c/src/lib/libbsp/arm/gba/startup/linkcmds @@ -139,6 +139,20 @@ SECTIONS SORT(CONSTRUCTORS) . = ALIGN(4); } =0xFF + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } =0xFF + .tbss : { + _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); __rodata_end = . ; .eh_frame : @@ -219,22 +233,7 @@ SECTIONS /************************************************************************* calculate __ro_end *************************************************************************/ - __ro_end = - ADDR(.text) + - SIZEOF(.text) + - SIZEOF(.init) + - SIZEOF(.fini) + - SIZEOF(.rodata) + - SIZEOF(.eh_frame) + - SIZEOF(.gcc_except_table) + - SIZEOF(.ctors) + - SIZEOF(.dtors) + - SIZEOF(.jcr) + - SIZEOF(.ARM.extab) + - SIZEOF(.ARM.exidx) + - SIZEOF(.preinit_array) + - SIZEOF(.init_array) + - SIZEOF(.fini_array); + __ro_end = .; PROVIDE(__text_end__ = __ro_end ); /*** IWRAM ***/ @@ -301,7 +300,6 @@ SECTIONS *(EXCLUDE_FILE(*.rodata.* *.ewram.o *.iwram.o) .data) *(.data.* .gnu.linkonce.d.*) *(.data1) - *(.tdata .tdata.* .gnu.linkonce.td.*) *(.sdata .sdata.* .gnu.linkonce.s.*) . = ALIGN(4); } =0xFF @@ -322,7 +320,6 @@ SECTIONS .bss : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) - *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) *(.sbss .sbss.* .gnu.linkonce.sb.*) *(.scommon) -- cgit v1.2.3