diff options
Diffstat (limited to 'firmware/riscv_ld.diff')
-rw-r--r-- | firmware/riscv_ld.diff | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/firmware/riscv_ld.diff b/firmware/riscv_ld.diff new file mode 100644 index 0000000..104a245 --- /dev/null +++ b/firmware/riscv_ld.diff @@ -0,0 +1,90 @@ +--- <(riscv32-unknown-elf-ld -z nocombreloc -verbose) 2017-01-13 16:55:07.569030165 +0100 ++++ riscv.ld 2017-01-13 16:56:47.796761642 +0100 +@@ -1,9 +1,3 @@ +-GNU ld (GNU Binutils) 2.28.51.20170101 +- Supported emulations: +- elf32lriscv +- elf64lriscv +-using internal linker script: +-================================================== + /* Default linker script, for normal executables */ + /* Copyright (C) 2014-2016 Free Software Foundation, Inc. + Copying and distribution of this script, with or without modification, +@@ -13,62 +7,26 @@ + "elf32-littleriscv") + OUTPUT_ARCH(riscv) + ENTRY(_start) +-SEARCH_DIR("/opt/new_riscv32i/riscv32-unknown-elf/lib"); + SECTIONS + { +- /* Read-only sections, merged into text segment: */ +- PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x10000)); . = SEGMENT_START("text-segment", 0x10000) + SIZEOF_HEADERS; +- .interp : { *(.interp) } +- .note.gnu.build-id : { *(.note.gnu.build-id) } +- .hash : { *(.hash) } +- .gnu.hash : { *(.gnu.hash) } +- .dynsym : { *(.dynsym) } +- .dynstr : { *(.dynstr) } +- .gnu.version : { *(.gnu.version) } +- .gnu.version_d : { *(.gnu.version_d) } +- .gnu.version_r : { *(.gnu.version_r) } +- .rela.init : { *(.rela.init) } +- .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } +- .rela.fini : { *(.rela.fini) } +- .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } +- .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } +- .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } +- .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } +- .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } +- .rela.ctors : { *(.rela.ctors) } +- .rela.dtors : { *(.rela.dtors) } +- .rela.got : { *(.rela.got) } +- .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } +- .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) } +- .rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } +- .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } +- .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } +- .rela.iplt : +- { +- PROVIDE_HIDDEN (__rela_iplt_start = .); +- *(.rela.iplt) +- PROVIDE_HIDDEN (__rela_iplt_end = .); +- } +- .rela.plt : +- { +- *(.rela.plt) +- } +- .init : +- { +- KEEP (*(SORT_NONE(.init))) +- } +- .plt : { *(.plt) } +- .iplt : { *(.iplt) } ++ . = 0x00010000; + .text : + { ++ *(.text) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) + *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) +- *(.text .stub .text.* .gnu.linkonce.t.*) ++ *(.stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + } ++ .init : ++ { ++ KEEP (*(SORT_NONE(.init))) ++ } ++ .plt : { *(.plt) } ++ .iplt : { *(.iplt) } + .fini : + { + KEEP (*(SORT_NONE(.fini))) +@@ -240,5 +198,3 @@ + /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } + } + +- +-================================================== |