summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds')
-rw-r--r--c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds77
1 files changed, 77 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds b/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds
new file mode 100644
index 0000000000..df1997639f
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds
@@ -0,0 +1,77 @@
+/*
+ * This file contains directives for the GNU linker which are specific
+ * to the Papyrus.
+ *
+ * $Id$
+ */
+
+OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
+ "elf32-powerpc")
+OUTPUT_ARCH(powerpc)
+ SEARCH_DIR(/usr/local/powerpc-rtems/lib);
+
+ENTRY(download_entry)
+
+MEMORY
+ {
+ RAM : ORIGIN = 0, LENGTH = 4M
+ FLASH : ORIGIN = 0xFF000000, LENGTH = 0x80000
+ EPROM : ORIGIN = 0xFFFE0000, LENGTH = 0x20000
+ }
+
+/* Do we need any of these for elf?
+ __DYNAMIC = 0; */
+SECTIONS
+{
+ .vectors 0x0100 :
+ {
+ *(.vectors)
+ }
+
+ .text 0x20000 :
+ {
+ *(.entry)
+ *(.entry2)
+ *(.text)
+ *(.rodata)
+ *(.rodata1)
+ *(.descriptors)
+ *(rom_ver)
+ } > RAM
+
+ /* R/W Data */
+ .data :
+ {
+ *(.data)
+ *(.data1)
+ } > RAM
+
+ .got :
+ {
+ s.got = .;
+ *(.got.plt) *(.got)
+ } > RAM
+
+ .bss :
+ {
+ bss.start = .;
+ *(.bss) *(.sbss) *(COMMON)
+ bss.end = ALIGN(4);
+ } > RAM
+
+ bss.size = bss.end - bss.start;
+ PROVIDE(_end = bss.end);
+
+ .line 0 : { *(.line) }
+ .debug 0 : { *(.debug) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_aregion 0 : { *(.debug_aregion) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+}
+
+