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.
This commit is contained in:
126
libgloss/crx/sim.ld
Normal file
126
libgloss/crx/sim.ld
Normal file
@@ -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);
|
Reference in New Issue
Block a user