aboutsummaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2000-07-20 17:16:06 +0000
committerHans-Peter Nilsson <hp@axis.com>2000-07-20 17:16:06 +0000
commit9d06555c53d713330444973dbaa93b1b4075a581 (patch)
tree8468cd4e20f3b14a196b9ece66a7f81ac063ae69 /ld/emulparams
parent041ff4dd56f6deddc34a4c9670b789b7ca09b4da (diff)
downloadgdb-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.sh7
-rw-r--r--ld/emulparams/criself.sh92
-rw-r--r--ld/emulparams/crislinux.sh35
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);
+'