diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-01-28 11:52:17 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-02-04 10:06:34 +0100 |
commit | 960fd8546fb0130058e6a588fbc62d696d01df0e (patch) | |
tree | de9bc7a1e9f1e2369e941d888ff476917c02b044 /c/src/lib/libbsp/m68k | |
parent | score: Add _Thread_Get_maximum_internal_threads() (diff) | |
download | rtems-960fd8546fb0130058e6a588fbc62d696d01df0e.tar.bz2 |
bsps: Thread-local storage (TLS) for linkcmds
Diffstat (limited to 'c/src/lib/libbsp/m68k')
32 files changed, 547 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/m68k/av5282/startup/linkcmds b/c/src/lib/libbsp/m68k/av5282/startup/linkcmds index 089d3d4e9c..447fea9582 100644 --- a/c/src/lib/libbsp/m68k/av5282/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/av5282/startup/linkcmds @@ -133,6 +133,23 @@ SECTIONS _estuff = .; PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE( _data_dest_start = . ); diff --git a/c/src/lib/libbsp/m68k/av5282/startup/linkcmdsflash b/c/src/lib/libbsp/m68k/av5282/startup/linkcmdsflash index 59fb269841..2c1aa7735d 100644 --- a/c/src/lib/libbsp/m68k/av5282/startup/linkcmdsflash +++ b/c/src/lib/libbsp/m68k/av5282/startup/linkcmdsflash @@ -132,8 +132,25 @@ SECTIONS _estuff = .; PROVIDE (_etext = .); } >flash + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >flash + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >flash + + _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 0x1000 : AT ( ADDR(.text) + SIZEOF ( .text ) ) + .data 0x1000 : AT ( ADDR(.tdata) + SIZEOF ( .tdata ) ) { PROVIDE( _data_dest_start = . ); PROVIDE( _copy_start = .); diff --git a/c/src/lib/libbsp/m68k/av5282/startup/linkcmdsram b/c/src/lib/libbsp/m68k/av5282/startup/linkcmdsram index fabfbe2405..e01d4d51bb 100644 --- a/c/src/lib/libbsp/m68k/av5282/startup/linkcmdsram +++ b/c/src/lib/libbsp/m68k/av5282/startup/linkcmdsram @@ -132,6 +132,23 @@ SECTIONS _estuff = .; PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE( _data_dest_start = . ); diff --git a/c/src/lib/libbsp/m68k/csb360/startup/linkcmds b/c/src/lib/libbsp/m68k/csb360/startup/linkcmds index 27297e0210..1ec50d7c3f 100644 --- a/c/src/lib/libbsp/m68k/csb360/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/csb360/startup/linkcmds @@ -102,6 +102,24 @@ SECTIONS } > ram + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { copy_start = .; diff --git a/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds b/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds index adc9a62159..957d94bf95 100644 --- a/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds @@ -114,6 +114,24 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); *(.data*) diff --git a/c/src/lib/libbsp/m68k/gen68340/startup/linkcmds b/c/src/lib/libbsp/m68k/gen68340/startup/linkcmds index 0ddc675b19..0a9d764f24 100644 --- a/c/src/lib/libbsp/m68k/gen68340/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/gen68340/startup/linkcmds @@ -142,6 +142,24 @@ SECTIONS { . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); *(.data*) diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds index a76ab96970..6b86db2538 100644 --- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds @@ -106,6 +106,24 @@ SECTIONS { . = ALIGN (16); PROVIDE (etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { _copy_start = .; *(.data*) diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp index 48e38fdbc7..0c1e710dc8 100644 --- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp +++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp @@ -111,6 +111,24 @@ SECTIONS { . = ALIGN (16); PROVIDE (etext = .); } >rom + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >rom + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >rom + + _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 : AT(SIZEOF(.text)) { _copy_start = .; *(.data) diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom index 75beeafba1..a360a3a247 100644 --- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom +++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom @@ -110,6 +110,24 @@ SECTIONS { . = ALIGN (16); PROVIDE (etext = .); } >rom + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >rom + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >rom + + _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 : AT(SIZEOF(.text)) { _copy_start = .; *(.data) diff --git a/c/src/lib/libbsp/m68k/idp/startup/linkcmds b/c/src/lib/libbsp/m68k/idp/startup/linkcmds index 247b48d28b..eaaf2003a3 100644 --- a/c/src/lib/libbsp/m68k/idp/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/idp/startup/linkcmds @@ -111,6 +111,24 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); *(.data*) diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds b/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds index 89e082520a..ee8ddaa269 100644 --- a/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds @@ -137,6 +137,23 @@ SECTIONS } > ram + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 BLOCK (0x4) : { copy_start = .; *(.shdata) diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds.flash b/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds.flash index 8e01947561..5f49fcd3aa 100644 --- a/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds.flash +++ b/c/src/lib/libbsp/m68k/mcf5206elite/startup/linkcmds.flash @@ -137,6 +137,23 @@ SECTIONS } >rom + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >rom + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >rom + + _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 0x30000400 : AT(LOADADDR(.text) + SIZEOF(.text)) { copy_start = .; . = ALIGN (0x10); diff --git a/c/src/lib/libbsp/m68k/mcf52235/startup/linkcmds b/c/src/lib/libbsp/m68k/mcf52235/startup/linkcmds index f5fe3d0628..761b4e227b 100644 --- a/c/src/lib/libbsp/m68k/mcf52235/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mcf52235/startup/linkcmds @@ -116,11 +116,28 @@ SECTIONS *(.console_gdb_xfer) *(.bootstrap_data) + } >flash + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; . = ALIGN(16); _estuff = .; PROVIDE (_etext = .); } >flash + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >flash + + _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 0x20000400 : AT (_estuff) { PROVIDE( _data_dest_start = . ); diff --git a/c/src/lib/libbsp/m68k/mcf5225x/startup/linkcmds b/c/src/lib/libbsp/m68k/mcf5225x/startup/linkcmds index 1eff44be7c..fabbda85e2 100644 --- a/c/src/lib/libbsp/m68k/mcf5225x/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mcf5225x/startup/linkcmds @@ -116,11 +116,28 @@ SECTIONS *(.console_gdb_xfer) *(.bootstrap_data) + } >flash + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; . = ALIGN(16); _estuff = .; PROVIDE (_etext = .); } >flash + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >flash + + _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 0x20000400 : AT (_estuff) { PROVIDE( _data_dest_start = . ); diff --git a/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmds b/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmds index 8cb050309f..4afe1d258a 100644 --- a/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmds @@ -140,6 +140,23 @@ SECTIONS _estuff = .; PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } > dram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } > dram + + _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 : { PROVIDE( _data_dest_start = . ); diff --git a/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsflash b/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsflash index 26eb9fd2e6..7a8a2fc227 100644 --- a/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsflash +++ b/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsflash @@ -144,8 +144,25 @@ SECTIONS _estuff = .; PROVIDE (_etext = .); } >flash + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >flash + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >flash + + _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 0x4000 : AT ( ADDR(.text) + SIZEOF ( .text ) ) + .data 0x4000 : AT ( ADDR(.tdata) + SIZEOF ( .tdata ) ) { PROVIDE( _data_dest_start = . ); PROVIDE( _copy_start = .); diff --git a/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsram b/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsram index 054d3f83ad..d80a4cdd19 100644 --- a/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsram +++ b/c/src/lib/libbsp/m68k/mcf5235/startup/linkcmdsram @@ -140,6 +140,23 @@ SECTIONS _estuff = .; PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE( _data_dest_start = . ); diff --git a/c/src/lib/libbsp/m68k/mcf5329/startup/linkcmds b/c/src/lib/libbsp/m68k/mcf5329/startup/linkcmds index be687027d2..f660bc33f5 100644 --- a/c/src/lib/libbsp/m68k/mcf5329/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mcf5329/startup/linkcmds @@ -132,6 +132,23 @@ SECTIONS PROVIDE (_etext = .); } > dram + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } > dram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } > dram + + _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 : { PROVIDE( _data_dest_start = . ); diff --git a/c/src/lib/libbsp/m68k/mcf5329/startup/linkcmdsflash b/c/src/lib/libbsp/m68k/mcf5329/startup/linkcmdsflash index 7137f5f06e..282e381e9e 100644 --- a/c/src/lib/libbsp/m68k/mcf5329/startup/linkcmdsflash +++ b/c/src/lib/libbsp/m68k/mcf5329/startup/linkcmdsflash @@ -123,11 +123,28 @@ SECTIONS *(.console_gdb_xfer) *(.bootstrap_data) + } > boot_flash + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; . = ALIGN(16); _estuff = .; PROVIDE (_etext = .); } > boot_flash + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } > boot_flash + + _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 0x40000500 : AT (_estuff) { PROVIDE( _data_dest_start = . ); diff --git a/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds b/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds index 854cfe4be9..651fc9f88b 100644 --- a/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds @@ -135,6 +135,24 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); *(.data*) diff --git a/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM b/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM index 574e64c1ea..48b2f3f46e 100644 --- a/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM +++ b/c/src/lib/libbsp/m68k/mrm332/startup/linkcmds_ROM @@ -146,8 +146,22 @@ SECTIONS _etext = .; _endtext = .; } > rom + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } > rom + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } > rom + _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); .gcc_exc : - AT ( ADDR(.text) + SIZEOF( .text ) ) + AT ( ADDR(.tdata) + SIZEOF( .tdata ) ) { *(.gcc_exc) } > ram diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds index 0f90431d7f..fec71151ef 100644 --- a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds @@ -111,6 +111,24 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); *(.data*) diff --git a/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds index 6438e4d460..5d2170d340 100644 --- a/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds @@ -115,6 +115,24 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); *(.data*) diff --git a/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds index 5c30b23ca2..e262802ed5 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds @@ -115,6 +115,24 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); *(.data*) diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds index 862c2f6bc8..49e3b4d257 100644 --- a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds @@ -118,6 +118,24 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); *(.data*) diff --git a/c/src/lib/libbsp/m68k/mvme167/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme167/startup/linkcmds index 9e80f1c67c..7b480d26e0 100644 --- a/c/src/lib/libbsp/m68k/mvme167/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme167/startup/linkcmds @@ -125,6 +125,23 @@ SECTIONS . = ALIGN (16); PROVIDE (_etext = .); } >ram + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >ram + + _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 : { PROVIDE (_copy_start = .); diff --git a/c/src/lib/libbsp/m68k/ods68302/startup/debugger b/c/src/lib/libbsp/m68k/ods68302/startup/debugger index 4b6f3f67cd..f1653e524a 100644 --- a/c/src/lib/libbsp/m68k/ods68302/startup/debugger +++ b/c/src/lib/libbsp/m68k/ods68302/startup/debugger @@ -23,6 +23,21 @@ SECTIONS __DTOR_END__ = .; } + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } + .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); + .vtable (ADDR(.text) + SIZEOF(.text)) : { vtable_start = .; diff --git a/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds b/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds index 5a15e9d4c0..e5664d882c 100644 --- a/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds @@ -128,8 +128,26 @@ SECTIONS PROVIDE (_etext = .); } >rom + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } >rom + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } >rom + + _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 (ADDR(.vtable) + SIZEOF(.vtable)) : - AT (ADDR(.text) + SIZEOF(.text)) { + AT (ADDR(.tdata) + SIZEOF(.tdata)) { PROVIDE (_copy_start = .); *(.data*) *(.gnu.linkonce.d*) diff --git a/c/src/lib/libbsp/m68k/ods68302/startup/rom b/c/src/lib/libbsp/m68k/ods68302/startup/rom index 29c4959e74..ef2c527875 100644 --- a/c/src/lib/libbsp/m68k/ods68302/startup/rom +++ b/c/src/lib/libbsp/m68k/ods68302/startup/rom @@ -22,6 +22,21 @@ SECTIONS LONG(0) __DTOR_END__ = .; } + + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } + .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); .vtable 0 : { diff --git a/c/src/lib/libbsp/m68k/shared/startup/linkcmds.base b/c/src/lib/libbsp/m68k/shared/startup/linkcmds.base index 767500211b..253ea26154 100644 --- a/c/src/lib/libbsp/m68k/shared/startup/linkcmds.base +++ b/c/src/lib/libbsp/m68k/shared/startup/linkcmds.base @@ -57,11 +57,19 @@ SECTIONS { *(.gcc_except_table .gcc_except_table.*) } > REGION_TEXT AT > REGION_TEXT_LOAD .tdata : ALIGN_WITH_INPUT { + _TLS_Data_begin = .; *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; } > REGION_TEXT AT > REGION_TEXT_LOAD .tbss : ALIGN_WITH_INPUT { + _TLS_BSS_begin = .; *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; } > REGION_TEXT AT > REGION_TEXT_LOAD + _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); .preinit_array : ALIGN_WITH_INPUT { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) 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*) diff --git a/c/src/lib/libbsp/m68k/uC5282/startup/linkcmds b/c/src/lib/libbsp/m68k/uC5282/startup/linkcmds index d7f810eaea..7b8dd9ecbd 100644 --- a/c/src/lib/libbsp/m68k/uC5282/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/uC5282/startup/linkcmds @@ -149,6 +149,23 @@ SECTIONS PROVIDE (_etext = .); } >ram + .tdata : { + _TLS_Data_begin = .; + *(.tdata .tdata.* .gnu.linkonce.td.*) + _TLS_Data_end = .; + } > ram + + .tbss : { + _TLS_BSS_begin = .; + *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) + _TLS_BSS_end = .; + } > ram + + _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 : { PROVIDE( _data_dest_start = . ); PROVIDE( _copy_start = .); |