aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1996-06-18 22:55:30 +0000
committerJeff Law <law@redhat.com>1996-06-18 22:55:30 +0000
commit71415be57c79a33a2b9847a13db2372c8708c294 (patch)
tree0e6cdcd5d1a4c1f840830def8c93eb66c7fec1c1 /ld
parent2459179f7a082da7b16b89f914c055f3656c54c5 (diff)
downloadfsf-binutils-gdb-71415be57c79a33a2b9847a13db2372c8708c294.zip
fsf-binutils-gdb-71415be57c79a33a2b9847a13db2372c8708c294.tar.gz
fsf-binutils-gdb-71415be57c79a33a2b9847a13db2372c8708c294.tar.bz2
* scripttempl/h8300s.sc: New file for H8/S.
* emulpararms/h8300s.sh: New file for H8/S. * Makefile.in (ALL_EMULATIONS): Add H8/S. (e_h8300s.c): Add dependencies. * configure.tgt: Add H8/S to targ_extra_emuls. H8/S linker stuff. Sanitized until status of this code is known.
Diffstat (limited to 'ld')
-rw-r--r--ld/.Sanitize28
-rw-r--r--ld/emulparams/.Sanitize8
-rw-r--r--ld/emulparams/h8300s.sh5
-rw-r--r--ld/scripttempl/.Sanitize8
-rw-r--r--ld/scripttempl/h8300s.sc76
5 files changed, 125 insertions, 0 deletions
diff --git a/ld/.Sanitize b/ld/.Sanitize
index 3d6589c..c63a6f4 100644
--- a/ld/.Sanitize
+++ b/ld/.Sanitize
@@ -114,6 +114,34 @@ else
done
fi
+h8s_files="ChangeLog Makefile.in configure.tgt"
+if ( echo $* | grep keep\-h8s > /dev/null ) ; then
+ for i in $h8s_files ; do
+ if test ! -d $i && (grep sanitize-h8s $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Keeping h8s stuff in $i
+ fi
+ fi
+ done
+else
+ for i in $h8s_files ; do
+ if test ! -d $i && (grep sanitize-h8s $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Removing traces of \"h8s\" from $i...
+ fi
+ cp $i new
+ sed '/start\-sanitize\-h8s/,/end-\sanitize\-h8s/d' < $i > new
+ if [ -n "${safe}" -a ! -f .Recover/$i ] ; then
+ if [ -n "${verbose}" ] ; then
+ echo Caching $i in .Recover...
+ fi
+ mv $i .Recover
+ fi
+ mv new $i
+ fi
+ done
+fi
+
for i in * ; do
if test ! -d $i && (grep sanitize $i > /dev/null) ; then
echo '***' Some mentions of Sanitize are still left in $i! 1>&2
diff --git a/ld/emulparams/.Sanitize b/ld/emulparams/.Sanitize
index 68dee19..d250a1f 100644
--- a/ld/emulparams/.Sanitize
+++ b/ld/emulparams/.Sanitize
@@ -23,6 +23,14 @@ else
lose_these_too="${arc_files} ${lose_these_too}"
fi
+h8s_files="h8300s.sh"
+
+if ( echo $* | grep keep\-h8s > /dev/null ) ; then
+ keep_these_too="${h8s_files} ${keep_these_too}"
+else
+ lose_these_too="${h8s_files} ${lose_these_too}"
+fi
+
# All files listed between the "Things-to-keep:" line and the
# "Do-last:" line will be kept. All other files will be removed.
# Directories listed in this section will have their own Sanitize
diff --git a/ld/emulparams/h8300s.sh b/ld/emulparams/h8300s.sh
new file mode 100644
index 0000000..e27b4f5
--- /dev/null
+++ b/ld/emulparams/h8300s.sh
@@ -0,0 +1,5 @@
+SCRIPT_NAME=h8300s
+OUTPUT_FORMAT="coff-h8300"
+TEXT_START_ADDR=0x8000
+TARGET_PAGE_SIZE=128
+ARCH=h8300
diff --git a/ld/scripttempl/.Sanitize b/ld/scripttempl/.Sanitize
index ed8c003..30fd79c 100644
--- a/ld/scripttempl/.Sanitize
+++ b/ld/scripttempl/.Sanitize
@@ -15,6 +15,14 @@
Do-first:
+h8s_files="h8300s.sc"
+
+if ( echo $* | grep keep\-h8s > /dev/null ) ; then
+ keep_these_too="${h8s_files} ${keep_these_too}"
+else
+ lose_these_too="${h8s_files} ${lose_these_too}"
+fi
+
# All files listed between the "Things-to-keep:" line and the
# "Do-last:" line will be kept. All other files will be removed.
# Directories listed in this section will have their own Sanitize
diff --git a/ld/scripttempl/h8300s.sc b/ld/scripttempl/h8300s.sc
new file mode 100644
index 0000000..b43abdf
--- /dev/null
+++ b/ld/scripttempl/h8300s.sc
@@ -0,0 +1,76 @@
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}")
+OUTPUT_ARCH(h8300s)
+ENTRY("_start")
+
+/* The memory size is 256KB to coincide with the simulator.
+ Don't change either without considering the other. */
+
+MEMORY
+{
+ /* 0xc4 is a magic entry. We should have the linker just
+ skip over it one day... */
+ vectors : o = 0x0000, l = 0xc4
+ magicvectors : o = 0xc4, l = 0x3c
+ /* We still only use 256k as the main ram size. */
+ ram : o = 0x0100, l = 0x3fefc
+ /* The stack starts at the top of main ram. */
+ topram : o = 0x3fffc, l = 0x4
+ /* This holds variables in the "tiny" sections. */
+ tiny : o = 0xff8000, l = 7f00
+ /* At the very top of the address space is the 8-bit area. */
+ eight : o = 0xffff00, l = 0x100
+}
+
+SECTIONS
+{
+.vectors : {
+ /* Use something like this to place a specific function's address
+ into the vector table.
+
+ LONG(ABSOLUTE(_foobar)) */
+
+ *(.vectors)
+ } ${RELOCATING+ > vectors}
+.text : {
+ *(.rodata)
+ *(.text)
+ *(.strings)
+ ${RELOCATING+ _etext = . ; }
+ } ${RELOCATING+ > ram}
+.tors : {
+ ___ctors = . ;
+ *(.ctors)
+ ___ctors_end = . ;
+ ___dtors = . ;
+ *(.dtors)
+ ___dtors_end = . ;
+ } ${RELOCATING+ > ram}
+.data : {
+ *(.data)
+ ${RELOCATING+ _edata = . ; }
+ } ${RELOCATING+ > ram}
+.bss : {
+ ${RELOCATING+ _bss_start = . ;}
+ *(.bss)
+ *(COMMON)
+ ${RELOCATING+ _end = . ; }
+ } ${RELOCATING+ >ram}
+.stack : {
+ ${RELOCATING+ _stack = . ; }
+ *(.stack)
+ } ${RELOCATING+ > topram}
+.tiny : {
+ *(.tiny)
+ } ${RELOCATING+ > tiny}
+.eight : {
+ *(.eight)
+ } ${RELOCATING+ > eight}
+.stab 0 ${RELOCATING+(NOLOAD)} : {
+ [ .stab ]
+ }
+.stabstr 0 ${RELOCATING+(NOLOAD)} : {
+ [ .stabstr ]
+ }
+}
+EOF