* scripttempl/h8300s.sc: New file for H8/S.
authorJeff Law <law@redhat.com>
Tue, 18 Jun 1996 22:55:30 +0000 (22:55 +0000)
committerJeff Law <law@redhat.com>
Tue, 18 Jun 1996 22:55:30 +0000 (22:55 +0000)
        * 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.

ld/.Sanitize
ld/emulparams/.Sanitize
ld/emulparams/h8300s.sh [new file with mode: 0644]
ld/scripttempl/.Sanitize
ld/scripttempl/h8300s.sc [new file with mode: 0644]

index 3d6589cbde9d79ef50048b4c2d079a5cbda07579..c63a6f438be1164d047a01af17a7705a2e216708 100644 (file)
@@ -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
index 68dee1918f21ea9a01ef6f9969c31a7054ae5545..d250a1f60976b4d2506ddbd63d65fcd02725f455 100644 (file)
@@ -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 (file)
index 0000000..e27b4f5
--- /dev/null
@@ -0,0 +1,5 @@
+SCRIPT_NAME=h8300s
+OUTPUT_FORMAT="coff-h8300"
+TEXT_START_ADDR=0x8000
+TARGET_PAGE_SIZE=128
+ARCH=h8300
index ed8c0038f538c743064762405d89fa874687bcfe..30fd79c1c46ad4f13f3249d6bde3bbe6318d2734 100644 (file)
 
 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 (file)
index 0000000..b43abdf
--- /dev/null
@@ -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