summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithpac@amazon.com>2023-03-02 11:46:53 -0800
committerPaul Bartell <paul.bartell@gmail.com>2023-03-30 12:32:55 -0700
commitbc1a95e9e7fd47d4a31ea4384e2ea895e4b04cbe (patch)
tree818645697f6c1b6e235cbb2ecb272c166b18b3e1
parent9add6bdf98510cd55ebdd92cf8d9e3d499bcb149 (diff)
downloadfreertos-git-bc1a95e9e7fd47d4a31ea4384e2ea895e4b04cbe.tar.gz
Demo/RISC-V_RV32_QEMU_VIRT_GCC: Add TLS support to linker script
Allocate ROM for initialized thread local storage variables. Allocate TLS offsets for all thread local storage variables. Signed-off-by: Keith Packard <keithpac@amazon.com>
-rw-r--r--FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/build/gcc/fake_rom.ld19
1 files changed, 19 insertions, 0 deletions
diff --git a/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/build/gcc/fake_rom.ld b/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/build/gcc/fake_rom.ld
index b63fad8f0..f8059ecca 100644
--- a/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/build/gcc/fake_rom.ld
+++ b/FreeRTOS/Demo/RISC-V_RV32_QEMU_VIRT_GCC/build/gcc/fake_rom.ld
@@ -51,6 +51,25 @@ SECTIONS
_erodata = .;
} >rom AT>rom
+ .tdata : {
+ *(.tdata .tdata.*)
+ } >rom AT>rom
+
+ .tbss (NOLOAD) : {
+ *(.tbss .tbss.* .gnu.linkonce.tb.*)
+ *(.tcommon)
+ PROVIDE( __tbss_end = . );
+ PROVIDE( __tls_end = . );
+ } >rom AT>rom
+ PROVIDE( __tdata_source = LOADADDR(.tdata) );
+ PROVIDE( __tdata_source_end = LOADADDR(.tdata) + SIZEOF(.tdata) );
+ PROVIDE( __tdata_size = SIZEOF(.tdata) );
+ PROVIDE( __tbss_offset = ADDR(.tbss) - ADDR(.tdata) );
+ PROVIDE( __tbss_start = ADDR(.tbss) );
+ PROVIDE( __tbss_size = SIZEOF(.tbss) );
+ PROVIDE( __tls_size = __tls_end - ADDR(.tdata) );
+ PROVIDE( __tls_align = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss)) );
+
.data.align :
{
. = ALIGN(4);