| OUTPUT_ARCH( "riscv" ) |
| |
| SECTIONS |
| { |
| . = 0x80000000; |
| .text : |
| { |
| *(.text.entry) |
| *(.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 */ |
| __bss_start = .; |
| .sbss : { |
| *(.sbss .sbss.* .gnu.linkonce.sb.*) |
| *(.scommon) |
| } |
| .bss : { *(.bss) } |
| __bss_end = .; |
| |
| __malloc_start = .; |
| . = . + 512; |
| |
| /* End of uninitalized data segement */ |
| _end = .; |
| } |
| |
| ASSERT(_end < 0x80004000, "program is too large") |