aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/riscv_ld.diff
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/riscv_ld.diff')
-rw-r--r--firmware/riscv_ld.diff90
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_*) }
+ }
+
+-
+-==================================================