diff options
author | Jeff Law <law@redhat.com> | 1996-06-18 22:55:30 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1996-06-18 22:55:30 +0000 |
commit | 71415be57c79a33a2b9847a13db2372c8708c294 (patch) | |
tree | 0e6cdcd5d1a4c1f840830def8c93eb66c7fec1c1 /ld | |
parent | 2459179f7a082da7b16b89f914c055f3656c54c5 (diff) | |
download | gdb-71415be57c79a33a2b9847a13db2372c8708c294.zip gdb-71415be57c79a33a2b9847a13db2372c8708c294.tar.gz 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/.Sanitize | 28 | ||||
-rw-r--r-- | ld/emulparams/.Sanitize | 8 | ||||
-rw-r--r-- | ld/emulparams/h8300s.sh | 5 | ||||
-rw-r--r-- | ld/scripttempl/.Sanitize | 8 | ||||
-rw-r--r-- | ld/scripttempl/h8300s.sc | 76 |
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 |