diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2000-07-20 17:16:06 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2000-07-20 17:16:06 +0000 |
commit | 9d06555c53d713330444973dbaa93b1b4075a581 (patch) | |
tree | 8468cd4e20f3b14a196b9ece66a7f81ac063ae69 /ld/emulparams | |
parent | 041ff4dd56f6deddc34a4c9670b789b7ca09b4da (diff) | |
download | gdb-9d06555c53d713330444973dbaa93b1b4075a581.zip gdb-9d06555c53d713330444973dbaa93b1b4075a581.tar.gz gdb-9d06555c53d713330444973dbaa93b1b4075a581.tar.bz2 |
* Makefile.am (ALL_EMULATIONS): Add ecrisaout.o, ecriself.o,
ecrislinux.o.
(ecrisaout.c, ecriself.c, ecrislinux.c): New rules.
Regenerate dependencies.
* Makefile.in: Rebuild.
* configure.tgt (cris-*-*): New target.
* emulparams/crisaout.sh, emulparams/criself.sh,
emulparams/crislinux.sh, scripttempl/crisaout.sc: New files.
* po/POTFILES.in, po/ld.pot: Regenerate.
Diffstat (limited to 'ld/emulparams')
-rw-r--r-- | ld/emulparams/crisaout.sh | 7 | ||||
-rw-r--r-- | ld/emulparams/criself.sh | 92 | ||||
-rw-r--r-- | ld/emulparams/crislinux.sh | 35 |
3 files changed, 134 insertions, 0 deletions
diff --git a/ld/emulparams/crisaout.sh b/ld/emulparams/crisaout.sh new file mode 100644 index 0000000..bb9135a --- /dev/null +++ b/ld/emulparams/crisaout.sh @@ -0,0 +1,7 @@ +# This is for embedded products and elinux (no MMU) with a.out. +SCRIPT_NAME=crisaout +OUTPUT_FORMAT="a.out-cris" +TARGET_PAGE_SIZE=2 +TEXT_START_ADDR=0 +NONPAGED_TEXT_START_ADDR=0 +ARCH=cris diff --git a/ld/emulparams/criself.sh b/ld/emulparams/criself.sh new file mode 100644 index 0000000..44d0a11 --- /dev/null +++ b/ld/emulparams/criself.sh @@ -0,0 +1,92 @@ +# This is for embedded products (no MMU) with ELF. +MACHINE= +SCRIPT_NAME=elf +TEMPLATE_NAME=elf32 +OUTPUT_FORMAT="elf32-cris" +ARCH=cris +MAXPAGESIZE=32 +ENTRY=_start +EMBEDDED=yes +ALIGNMENT=32 +TEXT_START_ADDR=0 + +# Put crt0 for flash/eprom etc. in this section. +INITIAL_READONLY_SECTIONS='.startup : { *(.startup) }' + +# TEXT_START_SYMBOLS doesn't get what we want which is the start of +# all read-only sections; there's at least .init and .fini before it. +# We have to resort to trickery. +EXECUTABLE_SYMBOLS='PROVIDE (__Stext = .);' + +# Smuggle an "OTHER_TEXT_END_SYMBOLS" here. +OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);' +DATA_START_SYMBOLS='PROVIDE (__Sdata = .);' + +# Smuggle an "OTHER_DATA_END_SYMBOLS" here. +OTHER_GOT_SECTIONS='PROVIDE (__Edata = .);' + +# If .bss does not immediately follow .data but has its own start +# address, we can't get to it with OTHER_BSS_SYMBOLS, neither can we +# use ADDR(.bss) there. Instead, we use the symbol support for the +# end symbol. +OTHER_BSS_END_SYMBOLS=' + PROVIDE (__Ebss = .); + PROVIDE (__end = .); + __Sbss = SIZEOF (.sbss) != 0 ? ADDR (.sbss) : ADDR (.bss); + PROVIDE (_bss_start = __Sbss); +' + +INIT_START=' + . = ALIGN(2); + ___init__start = .; + PROVIDE (___do_global_ctors = .); + SHORT (0xe1fc); /* push srp */ + SHORT (0xbe7e); +' + +INIT_END=' + SHORT (0x0d3e); /* jump [sp+] */ + PROVIDE (__init__end = .); + PROVIDE (___init__end = .); +' + +FINI_START=' + . = ALIGN (2); + ___fini__start = .; + PROVIDE (___do_global_dtors = .); + SHORT (0xe1fc); /* push srp */ + SHORT (0xbe7e); +' + +FINI_END=' + SHORT (0x0d3e); /* jump [sp+] */ + PROVIDE (__fini__end = .); + ___fini__end = .; +' + +CTOR_START=' + PROVIDE (___ctors = .); + ___elf_ctors_dtors_begin = .; +' + +CTOR_END=' + PROVIDE (___ctors_end = .); +' + +DTOR_START=' + PROVIDE (___dtors = .); +' + +CTOR_END=' + PROVIDE (___dtors_end = .); + ___elf_ctors_dtors_end = .; +' + + +# Smuggle an "OTHER_ALL_END_SYMBOLS" here. +# Also add the other symbols provided for rsim/xsim and elinux. +OTHER_RELOCATING_SECTIONS=' +PROVIDE (__Eall = .); +PROVIDE (__Endmem = 0x10000000); +PROVIDE (__Stacksize = 0); +' diff --git a/ld/emulparams/crislinux.sh b/ld/emulparams/crislinux.sh new file mode 100644 index 0000000..15af6cf --- /dev/null +++ b/ld/emulparams/crislinux.sh @@ -0,0 +1,35 @@ +# This is an approximation of what we want for a real linux system (with MMU and ELF). +MACHINE= +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf32-cris" +ARCH=cris +TEMPLATE_NAME=elf32 +ENTRY=_start +# Needed? Perhaps should be page-size alignment. +ALIGNMENT=32 +GENERATE_SHLIB_SCRIPT=yes + +# Is this high enough and low enough? +TEXT_START_ADDR=0x80000 + +# Do we need to set this higher? +MAXPAGESIZE=8192 + +# FIXME: GOT, PLT... + +# Smuggle an "OTHER_TEXT_END_SYMBOLS" here. +OTHER_READONLY_SECTIONS='PROVIDE (__Etext = .);' +DATA_START_SYMBOLS='PROVIDE (__Sdata = .);' + +# Smuggle an "OTHER_DATA_END_SYMBOLS" here. +OTHER_GOT_SECTIONS='PROVIDE (__Edata = .);' +OTHER_BSS_SYMBOLS='PROVIDE (__Sbss = .);' +OTHER_BSS_END_SYMBOLS='PROVIDE (__Ebss = .);' + +# Smuggle an "OTHER_ALL_END_SYMBOLS" here. +# Also add the other symbols provided for rsim/xsim and elinux. +OTHER_RELOCATING_SECTIONS=' +PROVIDE (__Eall = .); +PROVIDE(__Endmem = 0x10000000); +PROVIDE(__Stacksize = 0); +' |