OUTPUT_ARCH( "riscv" )
-/* The ENTRY command specifies the entry point (ie. first instruction
- to execute). The symbol _start should be defined in each test. */
-
-ENTRY( _start )
-
/*----------------------------------------------------------------------*/
/* Sections */
/*----------------------------------------------------------------------*/
{
/* text: test code section */
- . = 0x00002000;
- .text :
- {
- crt.o(.text)
- *(.text)
- }
+ . = 0x80000000;
+ .text.init : { *(.text.init) }
- /* data segmemt */
+ .tohost ALIGN(0x1000) : { *(.tohost) }
+
+ .text : { *(.text) }
+
+ /* data segment */
.data : { *(.data) }
+
+ .sdata : {
+ __global_pointer$ = . + 0x800;
+ *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata*)
+ *(.sdata .sdata.* .gnu.linkonce.s.*)
+ }
+
+ /* bss segment */
+ .sbss : {
+ *(.sbss .sbss.* .gnu.linkonce.sb.*)
+ *(.scommon)
+ }
.bss : { *(.bss) }
/* thread-local data segment */
- .tbss : {
- crt.o(.tbss) /* Make sure tls_start is the first TLS symbol */
+ .tdata :
+ {
+ _tls_data = .;
+ *(.tdata.begin)
+ *(.tdata)
+ *(.tdata.end)
+ }
+ .tbss :
+ {
*(.tbss)
+ *(.tbss.end)
}
- .tdata : { *(.tdata) }
/* End of uninitalized data segement */
_end = .;