diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2004-10-05 20:00:53 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2004-10-05 20:00:53 +0000 |
commit | 49a8b8f05cc85693a05dede399f4dfa5a829b718 (patch) | |
tree | d2aa759d150bf5ff4687433e66bc26cd7ca0f7aa /libgloss/crx/sim.ld | |
parent | 1185687a7b7f2e707484100d48a68d074d763f15 (diff) | |
download | cygnal-49a8b8f05cc85693a05dede399f4dfa5a829b718.tar.gz cygnal-49a8b8f05cc85693a05dede399f4dfa5a829b718.tar.bz2 cygnal-49a8b8f05cc85693a05dede399f4dfa5a829b718.zip |
2004-10-05 Tomer Levi <Tomer.Levi@nsc.com>
* configure.in: Support crx-*-*.
* configure: regenerate.
* crx/_exit.c: New file.
* crx/_getenv.c: Ditto.
* crx/_rename: Ditto.
* crx/close.c: Ditto.
* crx/configure.in: Ditto.
* crx/crti.S: Ditto.
* crx/crtn.S: Ditto.
* crx/crt0.S: Ditto.
* crx/dvz_hndl.c: Ditto.
* crx/flg_hndl.c: Ditto.
* crx/fstat.c: Ditto.
* crx/getpid.c: Ditto.
* crx/iad_hndl.c: Ditto.
* crx/intable.c: Ditto.
* crx/isatty.c: Ditto.
* crx/kill.c: Ditto.
* crx/lseek.c: Ditto.
* crx/Makefile.in: Ditto.
* crx/open.c: Ditto.
* crx/putnum.c: Ditto.
* crx/read.c: Ditto.
* crx/sbrk.c: Ditto.
* crx/sim.ld: Ditto.
* crx/stat.c: Ditto.
* crx/svc_hndl.c: Ditto.
* crx/time.c: Ditto.
* crx/und_hndl.c: Ditto.
* crx/unlink.c: Ditto.
* crx/write.c: Ditto.
Diffstat (limited to 'libgloss/crx/sim.ld')
-rw-r--r-- | libgloss/crx/sim.ld | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/libgloss/crx/sim.ld b/libgloss/crx/sim.ld new file mode 100644 index 000000000..a75c03dcd --- /dev/null +++ b/libgloss/crx/sim.ld @@ -0,0 +1,126 @@ +/* Example Linker Script for linking NS CRX elf32 files. */ +OUTPUT_FORMAT("elf32-crx") +OUTPUT_ARCH(crx) + +/* + The libh.a library includes various CR default handlers. + The libsim.a library includes low-level functions, which + are used as an interface to communicate with the simulator. +*/ +GROUP(-lc -lsim -lh -lgcc) + +/* + The next line forces the entry point (_start in this script) + to be entered in the output file as an undefined symbol. + It is needed in case the entry point is not called explicitly + (which is the usual case) AND is in an archive. +*/ +EXTERN(_start) +ENTRY(_start) + +/* Define memory regions */ +MEMORY +{ + rom : ORIGIN = 0x2, LENGTH = 3M + ram : ORIGIN = 4M, LENGTH = 10M +} + +SECTIONS +{ + .init : + { + __INIT_START = .; + KEEP (*(.init)) + __INIT_END = .; + } > rom + + .fini : + { + __FINI_START = .; + KEEP (*(.fini)) + __FINI_END = .; + } > rom + + .jcr : + { + KEEP (*(.jcr)) + } > rom + + .text : + { + __TEXT_START = .; + *(.text) *(.text.*) *(.gnu.linkonce.t.*) + __TEXT_END = .; + } > rom + + .rdata : + { + __RDATA_START = .; + *(.rdata_4) *(.rdata_2) *(.rdata_1) *(.rdata.*) *(.gnu.linkonce.r.*) + __RDATA_END = .; + } > rom + + .ctor ALIGN(4) : + { + __CTOR_START = .; + KEEP (*crtbegin*.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + __CTOR_END = .; + } > rom + + .dtor ALIGN(4) : + { + __DTOR_START = .; + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + __DTOR_END = .; + } > rom + + .data : + { + __DATA_START = .; + *(.data_4) *(.data_2) *(.data_1) *(.data) *(.data.*) *(.gnu.linkonce.d.*) + __DATA_END = .; + } > ram AT > rom + + .bss (NOLOAD) : + { + __BSS_START = .; + *(.bss_4) *(.bss_2) *(.bss_1) *(.bss) *(COMMON) *(.bss.*) *(.gnu.linkonce.b.*) + __BSS_END = .; + } > ram + +/* + You may change the sizes of the following sections to fit the actual + size your program requires. + The heap and stack are aligned to the bus width, as a speed optimization + for accessing data located there. +*/ + .heap : + { + . = ALIGN(4); + __HEAP_START = .; + . += 0x2000; + __HEAP_MAX = .; + } > ram + + .stack : + { + . = ALIGN(4); + . += 0x6000; + __STACK_START = .; + } > ram + + .istack : + { + . = ALIGN(4); + . += 0x100; + __ISTACK_START = .; + } > ram +} + +__DATA_IMAGE_START = LOADADDR(.data); |