diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds')
-rw-r--r-- | c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds | 77 |
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) } +} + + |