aboutsummaryrefslogtreecommitdiff
path: root/ld/scripttempl
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2003-06-03 21:43:52 +0000
committerMichael Snyder <msnyder@vmware.com>2003-06-03 21:43:52 +0000
commit65982ba6e7c672622ff83141c1c7f563f0427132 (patch)
tree607240eb56ca5359e81c685018499e3be2353753 /ld/scripttempl
parentdc5c3759e035d47d00088e43ea5871ffe717eb02 (diff)
downloadgdb-65982ba6e7c672622ff83141c1c7f563f0427132.zip
gdb-65982ba6e7c672622ff83141c1c7f563f0427132.tar.gz
gdb-65982ba6e7c672622ff83141c1c7f563f0427132.tar.bz2
2003-06-03 Michael Snyder <msnyder@redhat.com>
and Bernd Schmidt <bernds@redhat.com> and Alexandre Oliva <aoliva@redhat.com> * Makefile.am: Add new emulations for h8300sx. * Makefile.in: Regenerate. * configure.tgt: Add new emulations. * emulparams/h8300sx.sh: New emulation. * emulparams/h8300sxelf.sh: Ditto. * scripttempl/h8300sx.sc: Ditto.
Diffstat (limited to 'ld/scripttempl')
-rw-r--r--ld/scripttempl/h8300sx.sc97
1 files changed, 97 insertions, 0 deletions
diff --git a/ld/scripttempl/h8300sx.sc b/ld/scripttempl/h8300sx.sc
new file mode 100644
index 0000000..d3807c0
--- /dev/null
+++ b/ld/scripttempl/h8300sx.sc
@@ -0,0 +1,97 @@
+TORS=".tors :
+ {
+ ___ctors = . ;
+ *(.ctors)
+ ___ctors_end = . ;
+ ___dtors = . ;
+ *(.dtors)
+ ___dtors_end = . ;
+ } > ram"
+
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}")
+OUTPUT_ARCH(h8300sx)
+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 = 0x7f00
+ /* 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}
+
+${CONSTRUCTING+${TORS}}
+
+.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