forked from Imagelibrary/rtems
bsps: Thread-local storage (TLS) for linkcmds
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -122,11 +122,19 @@ SECTIONS {
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||
.tdata : ALIGN_WITH_INPUT {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||
.tbss : ALIGN_WITH_INPUT {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
} > REGION_RODATA AT > REGION_RODATA_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))
|
||||
|
||||
@@ -151,9 +151,23 @@ SECTIONS
|
||||
KEEP (*(.fini0))
|
||||
_etext = . ;
|
||||
} > text
|
||||
.data : AT (ADDR (.text) + SIZEOF (.text))
|
||||
{
|
||||
.tdata : AT (ADDR (.text) + SIZEOF (.text)) {
|
||||
PROVIDE (__data_start = .) ;
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} > data
|
||||
.tbss : {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
} > data
|
||||
_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 :
|
||||
{
|
||||
*(.data)
|
||||
*(.data*)
|
||||
*(.rodata) /* We need to include .rodata here if gcc is used */
|
||||
|
||||
@@ -66,6 +66,23 @@ SECTIONS
|
||||
___DTOR_END__ = .;
|
||||
} > sdram
|
||||
|
||||
.tdata : {
|
||||
__TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
__TLS_Data_end = .;
|
||||
} > sdram
|
||||
|
||||
.tbss : {
|
||||
__TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
__TLS_BSS_end = .;
|
||||
} > sdram
|
||||
|
||||
__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);
|
||||
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
|
||||
@@ -74,6 +74,23 @@ SECTIONS
|
||||
___DTOR_END__ = .;
|
||||
} > sdram
|
||||
|
||||
.tdata : {
|
||||
__TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
__TLS_Data_end = .;
|
||||
} > sdram
|
||||
|
||||
.tbss : {
|
||||
__TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
__TLS_BSS_end = .;
|
||||
} > sdram
|
||||
|
||||
__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);
|
||||
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
|
||||
@@ -63,6 +63,23 @@ SECTIONS
|
||||
___DTOR_END__ = .;
|
||||
} > sdram
|
||||
|
||||
.tdata : {
|
||||
__TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
__TLS_Data_end = .;
|
||||
} > sdram
|
||||
|
||||
.tbss : {
|
||||
__TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
__TLS_BSS_end = .;
|
||||
} > sdram
|
||||
|
||||
__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);
|
||||
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
|
||||
@@ -59,7 +59,21 @@ SECTIONS
|
||||
|
||||
_etext = .;
|
||||
} >ram
|
||||
.tors SIZEOF(.text) + ADDR(.text): {
|
||||
.tdata SIZEOF(.text) + ADDR(.text): {
|
||||
__TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
__TLS_Data_end = .;
|
||||
} >ram
|
||||
.tbss SIZEOF(.tdata) + ADDR(.tdata): {
|
||||
__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);
|
||||
.tors SIZEOF(.tbss) + ADDR(.tbss): {
|
||||
___ctors = . ;
|
||||
*(.ctors)
|
||||
___ctors_end = . ;
|
||||
|
||||
@@ -97,6 +97,20 @@ SECTIONS
|
||||
PROVIDE (etext = .);
|
||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.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);
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
|
||||
|
||||
@@ -79,6 +79,20 @@ SECTIONS
|
||||
|
||||
.rodata : { *(.rodata*) *(.gnu.linkonce.r*) } > sdram
|
||||
.rodata1 : { *(.rodata1) } > sdram
|
||||
.tdata : {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} > sdram
|
||||
.tbss : {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
} > sdram
|
||||
_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);
|
||||
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
|
||||
@@ -78,6 +78,20 @@ SECTIONS
|
||||
|
||||
.rodata : { *(.rodata*) *(.gnu.linkonce.r*) } > sdram
|
||||
.rodata1 : { *(.rodata1) } > sdram
|
||||
.tdata : {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} > sdram
|
||||
.tbss : {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
} > sdram
|
||||
_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);
|
||||
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
|
||||
@@ -61,6 +61,21 @@ SECTIONS
|
||||
PROVIDE(__romdatastart = .); /* IF_ROROM */
|
||||
} > 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 : {
|
||||
. = ALIGN(32 / 8);
|
||||
PROVIDE (__datastart = .); /* IF_ROROM */
|
||||
|
||||
@@ -80,6 +80,20 @@ SECTIONS
|
||||
PROVIDE (etext = .);
|
||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.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);
|
||||
.sdata2 :
|
||||
{
|
||||
*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
|
||||
|
||||
@@ -134,6 +134,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 = .);
|
||||
|
||||
@@ -133,7 +133,24 @@ SECTIONS
|
||||
PROVIDE (_etext = .);
|
||||
} >flash
|
||||
|
||||
.data 0x1000 : AT ( ADDR(.text) + SIZEOF ( .text ) )
|
||||
.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(.tdata) + SIZEOF ( .tdata ) )
|
||||
{
|
||||
PROVIDE( _data_dest_start = . );
|
||||
PROVIDE( _copy_start = .);
|
||||
|
||||
@@ -133,6 +133,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 = .);
|
||||
|
||||
@@ -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 = .;
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 = . );
|
||||
|
||||
@@ -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 = . );
|
||||
|
||||
@@ -141,6 +141,23 @@ SECTIONS
|
||||
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 = . );
|
||||
PROVIDE( _copy_start = .);
|
||||
|
||||
@@ -145,7 +145,24 @@ SECTIONS
|
||||
PROVIDE (_etext = .);
|
||||
} >flash
|
||||
|
||||
.data 0x4000 : AT ( ADDR(.text) + SIZEOF ( .text ) )
|
||||
.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(.tdata) + SIZEOF ( .tdata ) )
|
||||
{
|
||||
PROVIDE( _data_dest_start = . );
|
||||
PROVIDE( _copy_start = .);
|
||||
|
||||
@@ -141,6 +141,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 = .);
|
||||
|
||||
@@ -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 = . );
|
||||
|
||||
@@ -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 = . );
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -126,6 +126,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 (_copy_start = .);
|
||||
*(.data*)
|
||||
|
||||
@@ -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 = .;
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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 0 :
|
||||
{
|
||||
vtable_start = .;
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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*)
|
||||
|
||||
@@ -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 = .);
|
||||
|
||||
@@ -114,6 +114,23 @@ SECTIONS
|
||||
*(.gnu.linkonce.r*)
|
||||
} >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 :
|
||||
{
|
||||
_fdata = ALIGN(16);
|
||||
|
||||
@@ -111,6 +111,23 @@ SECTIONS
|
||||
*(.gnu.linkonce.r*)
|
||||
} >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 :
|
||||
{
|
||||
_fdata = ALIGN(16);
|
||||
|
||||
@@ -99,6 +99,24 @@ SECTIONS
|
||||
*(.rodata.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
}
|
||||
|
||||
.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);
|
||||
|
||||
_fdata = ALIGN(16);
|
||||
|
||||
.data : {
|
||||
|
||||
@@ -95,6 +95,24 @@ SECTIONS
|
||||
*(.rodata.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
}
|
||||
|
||||
.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);
|
||||
|
||||
_fdata = ALIGN(16);
|
||||
|
||||
.data : {
|
||||
|
||||
@@ -95,6 +95,24 @@ SECTIONS
|
||||
*(.rodata.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
}
|
||||
|
||||
.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);
|
||||
|
||||
_fdata = ALIGN(16);
|
||||
|
||||
.data : {
|
||||
|
||||
@@ -99,6 +99,24 @@ SECTIONS
|
||||
*(.rodata.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
}
|
||||
|
||||
.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);
|
||||
|
||||
_fdata = ALIGN(16);
|
||||
|
||||
.data : {
|
||||
|
||||
@@ -99,6 +99,24 @@ SECTIONS
|
||||
*(.rodata.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
}
|
||||
|
||||
.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);
|
||||
|
||||
_fdata = ALIGN(16);
|
||||
|
||||
.data : {
|
||||
|
||||
@@ -132,6 +132,20 @@ SECTIONS
|
||||
} =0
|
||||
.rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.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);
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
|
||||
@@ -195,10 +195,27 @@ SECTIONS
|
||||
. = ALIGN(32 / 8);
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
*(.rodata1)
|
||||
} > onchip_memory_0
|
||||
|
||||
.tdata : {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} > onchip_memory_0
|
||||
|
||||
.tbss : {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
. = ALIGN(32 / 8);
|
||||
PROVIDE (__ram_rodata_end = ABSOLUTE(.));
|
||||
} > onchip_memory_0
|
||||
|
||||
_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);
|
||||
|
||||
PROVIDE (__flash_rodata_start = LOADADDR(.rodata));
|
||||
|
||||
.rwdata :
|
||||
|
||||
@@ -95,6 +95,20 @@ SECTIONS
|
||||
.fini : { _fini = .; *(.fini) } >CODE
|
||||
.rodata : { *(.rodata*) *(.gnu.linkonce.r*) } > CODE
|
||||
.rodata1 : { *(.rodata1) } > CODE
|
||||
.tdata : {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} >CODE
|
||||
.tbss : {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
} >CODE
|
||||
_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);
|
||||
_SDA2_BASE_ = __SDATA2_START__ + 0x8000;
|
||||
.sdata2 : { *(.sdata2) *(.gnu.linkonce.s2.*) } > CODE
|
||||
.sbss2 : {
|
||||
|
||||
@@ -64,6 +64,20 @@ SECTIONS
|
||||
.fini : { _fini = .; *(.fini) }
|
||||
.rodata : { *(.rodata*) *(.gnu.linkonce.r*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.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);
|
||||
.eh_frame : { *(.eh_frame) }
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
|
||||
@@ -121,6 +121,21 @@ 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);
|
||||
|
||||
.sdata2 : {
|
||||
PROVIDE (_SDA2_BASE_ = 32768);
|
||||
|
||||
|
||||
@@ -141,6 +141,23 @@ SECTIONS
|
||||
|
||||
text.size = text.end - text.start;
|
||||
|
||||
.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);
|
||||
|
||||
.jcr : { KEEP (*(.jcr)) } >RAM
|
||||
|
||||
.rel.dyn : {
|
||||
|
||||
@@ -139,6 +139,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);
|
||||
|
||||
.rel.dyn :
|
||||
{
|
||||
*(.rel.init)
|
||||
|
||||
@@ -140,6 +140,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);
|
||||
|
||||
|
||||
.rel.dyn :
|
||||
{
|
||||
|
||||
@@ -76,6 +76,21 @@ SECTIONS
|
||||
PROVIDE (__DTOR_END__ = .);
|
||||
.jcr : { KEEP (*(.jcr)) } > ROM =0
|
||||
|
||||
.tdata : {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} >ROM =0
|
||||
.tbss : {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
} >ROM =0
|
||||
_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 :
|
||||
{
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
|
||||
@@ -103,6 +103,20 @@ SECTIONS
|
||||
.fini : { _fini = .; __fini = .; *(.fini) } >RAM
|
||||
.rodata : { *(.rodata*) *(.gnu.linkonce.r*) } >RAM
|
||||
.rodata1 : { *(.rodata1) } >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);
|
||||
.eh_frame : { *(.eh_frame) } >RAM
|
||||
_etext = .;
|
||||
PROVIDE (_etext = .);
|
||||
|
||||
@@ -80,6 +80,23 @@ SECTIONS
|
||||
.rodata : { *(.rodata*) *(.gnu.linkonce.r*) } > CODE
|
||||
.rodata1 : { *(.rodata1) } > CODE
|
||||
|
||||
.tdata : {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} >CODE
|
||||
|
||||
.tbss : {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
} >CODE
|
||||
|
||||
_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);
|
||||
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(0x10000) + (. & (0x10000 - 1));
|
||||
|
||||
@@ -109,11 +109,19 @@ SECTIONS {
|
||||
*(.gcc_except_table .gcc_except_table.*)
|
||||
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||
.tdata : ALIGN_WITH_INPUT {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} > REGION_RODATA AT > REGION_RODATA_LOAD
|
||||
.tbss : ALIGN_WITH_INPUT {
|
||||
_TLS_BSS_begin = .;
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
|
||||
_TLS_BSS_end = .;
|
||||
} > REGION_RODATA AT > REGION_RODATA_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))
|
||||
|
||||
@@ -132,6 +132,13 @@ SECTIONS
|
||||
text.end = .;
|
||||
PROVIDE (etext = .);
|
||||
PROVIDE (__etext = .);
|
||||
}
|
||||
text.size = text.end - text.start;
|
||||
|
||||
.tdata : {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
|
||||
/*
|
||||
* .data section contents, copied to RAM at system startup.
|
||||
@@ -139,7 +146,15 @@ SECTIONS
|
||||
. = ALIGN(0x20);
|
||||
data.contents.start = .;
|
||||
}
|
||||
text.size = text.end - text.start;
|
||||
.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);
|
||||
|
||||
/*
|
||||
* If debugging, stack the read/write sections directly after the text
|
||||
|
||||
@@ -113,6 +113,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);
|
||||
|
||||
.sdata2 : {
|
||||
PROVIDE (_SDA2_BASE_ = 32768);
|
||||
|
||||
|
||||
@@ -94,6 +94,23 @@ SECTIONS
|
||||
.rodata : { *(.rodata.* .gnu.linkonce.r*) } > RAM
|
||||
.rodata1 : { *(.rodata1) } > 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);
|
||||
|
||||
/* Initialised small data addressed as offsets from r2 */
|
||||
_SDA2_BASE_ = __SDATA2_START__ + 0x8000;
|
||||
.sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } > RAM
|
||||
|
||||
@@ -94,6 +94,23 @@ SECTIONS
|
||||
.rodata : { *(.rodata.* .gnu.linkonce.r*) } > RAM
|
||||
.rodata1 : { *(.rodata1) } > 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);
|
||||
|
||||
/* Initialised small data addressed as offsets from r2 */
|
||||
_SDA2_BASE_ = __SDATA2_START__ + 0x8000;
|
||||
.sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } > RAM
|
||||
|
||||
@@ -128,9 +128,23 @@ SECTIONS
|
||||
} > ram
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.fini . : { *(.fini) } =0
|
||||
.rodata . : { *(.rodata*) *(.gnu.linkonce.r*) }
|
||||
.rodata1 . : { *(.rodata1) }
|
||||
.fini . : { *(.fini) } > ram =0
|
||||
.rodata . : { *(.rodata*) *(.gnu.linkonce.r*) } > ram
|
||||
.rodata1 . : { *(.rodata1) } > 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);
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(128) + (. & (128 - 1));
|
||||
|
||||
@@ -139,9 +139,23 @@ SECTIONS
|
||||
} > ram
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.fini . : { *(.fini) } =0
|
||||
.rodata . : { *(.rodata*) *(.gnu.linkonce.r*) }
|
||||
.rodata1 . : { *(.rodata1) }
|
||||
.fini . : { *(.fini) } > ram =0
|
||||
.rodata . : { *(.rodata*) *(.gnu.linkonce.r*) } > ram
|
||||
.rodata1 . : { *(.rodata1) } > 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);
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(128) + (. & (128 - 1));
|
||||
|
||||
@@ -138,9 +138,23 @@ SECTIONS
|
||||
} > ram
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.fini . : { *(.fini) } =0
|
||||
.rodata . : { *(.rodata) *(.gnu.linkonce.r*) }
|
||||
.rodata1 . : { *(.rodata1) }
|
||||
.fini . : { *(.fini) } > ram =0
|
||||
.rodata . : { *(.rodata) *(.gnu.linkonce.r*) } > ram
|
||||
.rodata1 . : { *(.rodata1) } > 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);
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(128) + (. & (128 - 1));
|
||||
|
||||
@@ -139,9 +139,23 @@ SECTIONS
|
||||
} > ram
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.fini . : { *(.fini) } =0
|
||||
.rodata . : { *(.rodata) *(.gnu.linkonce.r*) }
|
||||
.rodata1 . : { *(.rodata1) }
|
||||
.fini . : { *(.fini) } > ram =0
|
||||
.rodata . : { *(.rodata) *(.gnu.linkonce.r*) } > ram
|
||||
.rodata1 . : { *(.rodata1) } > 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);
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(128) + (. & (128 - 1));
|
||||
|
||||
@@ -93,6 +93,20 @@ SECTIONS
|
||||
*(.rodata.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
} > 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);
|
||||
.ctors :
|
||||
{
|
||||
___ctors = .;
|
||||
|
||||
@@ -105,6 +105,20 @@ SECTIONS
|
||||
*(.gnu.linkonce.r*)
|
||||
. = ALIGN(32);
|
||||
} > 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);
|
||||
.ctors :
|
||||
{
|
||||
___ctors = .;
|
||||
|
||||
@@ -92,6 +92,20 @@ SECTIONS
|
||||
*(.gnu.linkonce.r*)
|
||||
. = ALIGN(32);
|
||||
} > 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);
|
||||
.ctors : AT(LOADADDR(.rodata) + SIZEOF(.rodata))
|
||||
{
|
||||
___ctors = .;
|
||||
|
||||
@@ -127,8 +127,22 @@ SECTIONS
|
||||
} =0
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.rodata . : { *(.rodata*) .rodata.* *(.gnu.linkonce.r*) }
|
||||
.rodata1 . : { *(.rodata1) }
|
||||
.rodata . : { *(.rodata*) .rodata.* *(.gnu.linkonce.r*) } > ram
|
||||
.rodata1 . : { *(.rodata1) } > 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);
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(128) + (. & (128 - 1));
|
||||
|
||||
@@ -121,8 +121,22 @@ SECTIONS
|
||||
} =0
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.rodata . : { *(.rodata*) .rodata.* *(.gnu.linkonce.r*) }
|
||||
.rodata1 . : { *(.rodata1) }
|
||||
.rodata . : { *(.rodata*) .rodata.* *(.gnu.linkonce.r*) } > ram
|
||||
.rodata1 . : { *(.rodata1) } > 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);
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(128) + (. & (128 - 1));
|
||||
|
||||
@@ -108,6 +108,20 @@ SECTIONS
|
||||
*(.shdata)
|
||||
. = ALIGN (16);
|
||||
} > 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);
|
||||
.rtemsroset : {
|
||||
/* for pre rtems-libbsd FreeBSD code */
|
||||
__start_set_sysctl_set = .;
|
||||
|
||||
@@ -149,7 +149,22 @@ SECTIONS
|
||||
_etext = . ;
|
||||
} > ram
|
||||
|
||||
.data : AT (ADDR (.text) + SIZEOF (.text))
|
||||
.tdata : AT (ADDR (.text) + SIZEOF (.text)) {
|
||||
_TLS_Data_begin = .;
|
||||
*(.tdata .tdata.* .gnu.linkonce.td.*)
|
||||
_TLS_Data_end = .;
|
||||
} > ram
|
||||
.tbss : AT (ADDR (.tdata) + SIZEOF (.tdata)) {
|
||||
_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 : AT (ADDR (.tbss) + SIZEOF (.tbss))
|
||||
{
|
||||
PROVIDE (__data_start = .) ;
|
||||
data_start = . ;
|
||||
|
||||
@@ -91,6 +91,20 @@ SECTIONS
|
||||
.fini : { KEEP (*(.fini)) } =0
|
||||
.rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.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);
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
|
||||
Reference in New Issue
Block a user