aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <gnu@the-meissners.org>1997-12-09 22:57:58 +0000
committerMichael Meissner <gnu@the-meissners.org>1997-12-09 22:57:58 +0000
commit98d38753e411b6547f72e00389c17cbaac2abb7a (patch)
treeddf1039b5c718b8556a64e309a0c6793b3f6b761
parente48412a2b23563d5255361a0ee64956207a387bf (diff)
downloadfsf-binutils-gdb-98d38753e411b6547f72e00389c17cbaac2abb7a.zip
fsf-binutils-gdb-98d38753e411b6547f72e00389c17cbaac2abb7a.tar.gz
fsf-binutils-gdb-98d38753e411b6547f72e00389c17cbaac2abb7a.tar.bz2
Add support for d30velf_{e,o} emulations to control whether text/data/et. al go in external memory or onchip memory
-rw-r--r--ld/ChangeLog15
-rw-r--r--ld/emulparams/.Sanitize2
-rw-r--r--ld/emulparams/d30velf_e.sh15
-rw-r--r--ld/emulparams/d30velf_o.sh15
4 files changed, 45 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 11795ab..2682cda 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -9,7 +9,11 @@ start-sanitize-d30v
end-sanitize-tic80
start-sanitize-d30v
- * Makefile.{am,in}: (ALL_EMULATIONS): Add ed30velf.o.
+ * Makefile.{am,in}: (ALL_EMULATIONS): Add ed30velf{,_e,_o}.o.
+ (ed30velf_e.c): Like d30velf, except .text/.data/etc always go in
+ external memory.
+ (ed30velf_o.c): Like d30velf, except .text/.data/etc always go in
+ onchip memory.
* emulparams/d30velf.sh (STACK_START_ADDR): Top of default
stack.
@@ -17,6 +21,15 @@ start-sanitize-d30v
({TEXT,DATA,BSS}_MEMORY): Which memory region .text, .data, and
.bss should go in.
+ * emulparams/d30velf_{e,o}.sh: New files to be explicit whether
+ .text, .data, etc go in external memory or onchip memory.
+
+ * configure.tgt (d30v-*-*ext*): New configuration to default
+ .text, .data, etc. in external memory.
+ (d30v-*-*onchip*): New configuration to default .text, .data,
+ etc. in onchip memory.
+ (d30v-*-*): Add d30velf_{e,o} emulations.
+
* scripttempl/elfd30v.sc: Allow .text, .data, .bss to be put in
either the onchip text/data areas or the external memory area.
(MEMORY): Get sizes from d30velf.sh.
diff --git a/ld/emulparams/.Sanitize b/ld/emulparams/.Sanitize
index 4cac5ad..11fa7af 100644
--- a/ld/emulparams/.Sanitize
+++ b/ld/emulparams/.Sanitize
@@ -15,7 +15,7 @@
Do-first:
-d30v_files="d30velf.sh"
+d30v_files="d30velf.sh d30velf_o.sh d30velf_e.sh"
if ( echo $* | grep keep\-d30v > /dev/null ) ; then
keep_these_too="${d30v_files} ${keep_these_too}"
diff --git a/ld/emulparams/d30velf_e.sh b/ld/emulparams/d30velf_e.sh
new file mode 100644
index 0000000..3e6135a
--- /dev/null
+++ b/ld/emulparams/d30velf_e.sh
@@ -0,0 +1,15 @@
+MACHINE=
+SCRIPT_NAME=elfd30v
+OUTPUT_FORMAT="elf32-d30v"
+TEXT_START_ADDR=0x00000000
+DATA_START_ADDR=0x20000000
+EMEM_START_ADDR=0x80000000
+STACK_START_ADDR=0x20008000
+TEXT_SIZE=64K
+DATA_SIZE=32K
+EMEM_SIZE=8M
+TEXT_MEMORY=emem
+DATA_MEMORY=emem
+BSS_MEMORY=emem
+ARCH=d30v
+EMBEDDED=t
diff --git a/ld/emulparams/d30velf_o.sh b/ld/emulparams/d30velf_o.sh
new file mode 100644
index 0000000..001fb07
--- /dev/null
+++ b/ld/emulparams/d30velf_o.sh
@@ -0,0 +1,15 @@
+MACHINE=
+SCRIPT_NAME=elfd30v
+OUTPUT_FORMAT="elf32-d30v"
+TEXT_START_ADDR=0x00000000
+DATA_START_ADDR=0x20000000
+EMEM_START_ADDR=0x80000000
+STACK_START_ADDR=0x20008000
+TEXT_SIZE=64K
+DATA_SIZE=32K
+EMEM_SIZE=8M
+TEXT_MEMORY=text
+DATA_MEMORY=data
+BSS_MEMORY=data
+ARCH=d30v
+EMBEDDED=t