OUTPUT_ARCH(riscv64gc) ENTRY(_boot); SECTIONS { . = 0x80200000; .text : { PROVIDE(__text_start = .); PROVIDE(KERNEL_START = .); *(.init.boot) *(.init.rust) *(.text .text.*) . = ALIGN(4K); PROVIDE(__text_end = .); } .data : { PROVIDE(__data_start = .); *(.data .data.* .rodata .rodata.*) . = ALIGN(8); PROVIDE(__tmp_stack_bottom = .); . += 1024 * 1024 * 4; PROVIDE(__tmp_stack_top = .); . += 4096; PROVIDE(__scratch_stack = .); . = ALIGN(8); } . = ALIGN(8); .sdata : { PROVIDE(__global_pointer$ = .); *(.sdata .sdata.*) . = ALIGN(4K); PROVIDE(__data_end = .); } PROVIDE(__bss_start = .); .sbss : { *(.sbss .sbss.*); } .bss : { *(.bss .bss.*) } . = ALIGN(4K); PROVIDE(__bss_end = .); .tdata : { . = ALIGN(4K); PROVIDE(__tdata_start = .); *(.tdata .tdata.*) . = ALIGN(4K); PROVIDE(__tdata_end = .); } . = ALIGN(2M); PROVIDE(KERNEL_END = .); /DISCARD/ : { *(.eh_frame_hdr .eh_frame) } }