123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv", "elf64-littleriscv")
- OUTPUT_ARCH(riscv)
- ENTRY(_start)
- STACK_SIZE = 0x100000;
- MEMORY
- {
- ram : org = 0x40000000, len = 48M
- }
- SECTIONS
- {
- .text :
- {
- PROVIDE(__image_start = .);
- PROVIDE(__text_start = .);
- PROVIDE(__spl_start = .);
- start.o (.text*)
- *libgcc.a:*.o (.text*)
- memcpy.o (.text*)
- memset.o (.text*)
- . = ALIGN(8);
- PROVIDE(__spl_end = .);
- *(.text*)
- *(.init.text)
- *(.exit.text)
- *(.iplt)
- *(.note.gnu.build-id)
- PROVIDE(__text_end = .);
- } > ram
- PROVIDE(__spl_size = __spl_end - __spl_start);
- .initcall ALIGN(8) :
- {
- PROVIDE(__init_array_start = .);
- PROVIDE(__initcall_start = .);
- KEEP(*(.initcall_0.text))
- KEEP(*(.initcall_1.text))
- KEEP(*(.initcall_2.text))
- KEEP(*(.initcall_3.text))
- KEEP(*(.initcall_4.text))
- KEEP(*(.initcall_5.text))
- KEEP(*(.initcall_6.text))
- KEEP(*(.initcall_7.text))
- KEEP(*(.initcall_8.text))
- KEEP(*(.initcall_9.text))
- PROVIDE(__init_array_end = .);
- PROVIDE(__initcall_end = .);
- } > ram
- .exitcall ALIGN(8) :
- {
- PROVIDE(__exitcall_start = .);
- KEEP(*(.exitcall_9.text))
- KEEP(*(.exitcall_8.text))
- KEEP(*(.exitcall_7.text))
- KEEP(*(.exitcall_6.text))
- KEEP(*(.exitcall_5.text))
- KEEP(*(.exitcall_4.text))
- KEEP(*(.exitcall_3.text))
- KEEP(*(.exitcall_2.text))
- KEEP(*(.exitcall_1.text))
- KEEP(*(.exitcall_0.text))
- PROVIDE(__exitcall_end = .);
- } > ram
- .ksymtab ALIGN(16) :
- {
- PROVIDE(__ksymtab_start = .);
- KEEP(*(.ksymtab.text))
- PROVIDE(__ksymtab_end = .);
- } > ram
- .rodata ALIGN(8) :
- {
- PROVIDE(__rodata_start = .);
- *(.rodata*)
- *(.srodata*)
- PROVIDE(__rodata_end = .);
- } > ram
- .data ALIGN(8) :
- {
- PROVIDE(__data_start = .);
- PROVIDE(__global_pointer$ = . + 0x800);
- *(.sdata*)
- *(.data*)
- . = ALIGN(8);
- PROVIDE(__data_end = .);
- PROVIDE(__image_end = .);
- } > ram
- .bss ALIGN(8) (NOLOAD) :
- {
- PROVIDE(__bss_start = .);
- *(.bss*)
- *(.sbss*)
- *(COMMON)
- . = ALIGN(8);
- PROVIDE(__bss_end = .);
- } > ram
- .stack ALIGN(16) (NOLOAD) :
- {
- PROVIDE(__stack_start = .);
- . += STACK_SIZE;
- . = ALIGN(16);
- PROVIDE(__stack_end = .);
- } > ram
- /DISCARD/ : { *(.dynsym) }
- /DISCARD/ : { *(.dynstr*) }
- /DISCARD/ : { *(.dynamic*) }
- /DISCARD/ : { *(.plt*) }
- /DISCARD/ : { *(.interp*) }
- /DISCARD/ : { *(.gnu*) }
- }
|