aboutsummaryrefslogtreecommitdiff
path: root/ld/scripttempl
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/scripttempl
parent2459179f7a082da7b16b89f914c055f3656c54c5 (diff)
downloadgdb-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/scripttempl')
-rw-r--r--ld/scripttempl/.Sanitize8
-rw-r--r--ld/scripttempl/h8300s.sc76
2 files changed, 84 insertions, 0 deletions
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