| /* adapted from bbl.lds */ |
| OUTPUT_ARCH( "riscv" ) |
| |
| ENTRY( _start ) |
| |
| SECTIONS |
| { |
| |
| /*--------------------------------------------------------------------*/ |
| /* Code and read-only segment */ |
| /*--------------------------------------------------------------------*/ |
| |
| /* Begining of code and text segment */ |
| . = 0x80000000; |
| _ftext = .; |
| PROVIDE( eprol = . ); |
| |
| .text : |
| { |
| *(.text.init) |
| } |
| |
| /* text: Program code section */ |
| .text : |
| { |
| *(.text) |
| *(.text.*) |
| *(.gnu.linkonce.t.*) |
| } |
| |
| /* rodata: Read-only data */ |
| .rodata : |
| { |
| *(.rdata) |
| *(.rodata) |
| *(.rodata.*) |
| *(.gnu.linkonce.r.*) |
| } |
| |
| /* End of code and read-only segment */ |
| PROVIDE( etext = . ); |
| _etext = .; |
| |
| /*--------------------------------------------------------------------*/ |
| /* Initialized data segment */ |
| /*--------------------------------------------------------------------*/ |
| |
| /* Start of initialized data segment */ |
| . = ALIGN(16); |
| _fdata = .; |
| |
| /* data: Writable data */ |
| .data : |
| { |
| *(.data) |
| *(.data.*) |
| *(.srodata*) |
| *(.gnu.linkonce.d.*) |
| *(.comment) |
| } |
| |
| /* End of initialized data segment */ |
| . = ALIGN(4); |
| PROVIDE( edata = . ); |
| _edata = .; |
| |
| /*--------------------------------------------------------------------*/ |
| /* Uninitialized data segment */ |
| /*--------------------------------------------------------------------*/ |
| |
| /* Start of uninitialized data segment */ |
| . = .; |
| _fbss = .; |
| |
| /* sbss: Uninitialized writeable small data section */ |
| . = .; |
| |
| /* bss: Uninitialized writeable data section */ |
| . = .; |
| _bss_start = .; |
| .bss : |
| { |
| *(.bss) |
| *(.bss.*) |
| *(.sbss*) |
| *(.gnu.linkonce.b.*) |
| *(COMMON) |
| } |
| |
| _end = .; |
| } |