* scripttempl/h8300sxn.sc: New file.
authorRichard Sandiford <rdsandiford@googlemail.com>
Tue, 10 Jun 2003 08:31:04 +0000 (08:31 +0000)
committerRichard Sandiford <rdsandiford@googlemail.com>
Tue, 10 Jun 2003 08:31:04 +0000 (08:31 +0000)
ld/ChangeLog
ld/scripttempl/h8300sxn.sc [new file with mode: 0644]

index b1b274600fdcc43706cf572546585247687bb19b..3151bf0e453cf1899b20c8d9ee737bd5a0e20291 100644 (file)
@@ -5,6 +5,7 @@
        (eh8300sxn.c, eh8300sxnelf.c): New rules.
        * Makefile.in: Regenerate.
        * emulparams/h8300sxnelf.sh, emulparams/h8300sxn.sh: New files.
+       * scripttempl/h8300sxn.sc: New file.
 
 2003-06-10  Alan Modra  <amodra@bigpond.net.au>
 
diff --git a/ld/scripttempl/h8300sxn.sc b/ld/scripttempl/h8300sxn.sc
new file mode 100644 (file)
index 0000000..0b1bcf1
--- /dev/null
@@ -0,0 +1,87 @@
+TORS=".tors :
+       {
+         ___ctors = . ;
+         *(.ctors)
+         ___ctors_end = . ;
+         ___dtors = . ;
+         *(.dtors)
+         ___dtors_end = . ;
+       } > ram"
+
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}")
+OUTPUT_ARCH(h8300sxn)
+ENTRY("_start")
+
+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
+       ram    : o = 0x0100, l = 0xfdfc
+       /* The stack starts at the top of main ram.  */
+       topram : o = 0xfefc, l = 0x4
+       /* At the very top of the address space is the 8-bit area.  */
+       eight : o = 0xff00, l = 0x100
+}
+
+SECTIONS
+{
+.vectors :
+       {
+         /* Use something like this to place a specific
+            function's address into the vector table.
+
+            SHORT (ABSOLUTE (_foobar)).  */
+
+         *(.vectors)
+       } ${RELOCATING+ > vectors}
+
+.text :
+       {
+         *(.rodata)
+         *(.text)
+         *(.strings)
+         ${RELOCATING+ _etext = . ; }
+       } ${RELOCATING+ > ram}
+
+${CONSTRUCTING+${TORS}}
+
+.data :
+       {
+         *(.data)
+         *(.tiny)
+         ${RELOCATING+ _edata = . ; }
+       } ${RELOCATING+ > ram}
+
+.bss :
+       {
+         ${RELOCATING+ _bss_start = . ;}
+         *(.bss)
+         *(COMMON)
+         ${RELOCATING+ _end = . ;  }
+       } ${RELOCATING+ >ram}
+
+.stack :
+       {
+         ${RELOCATING+ _stack = . ; }
+         *(.stack)
+       } ${RELOCATING+ > topram}
+
+.eight :
+       {
+         *(.eight)
+       } ${RELOCATING+ > eight}
+
+.stab 0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stab ]
+       }
+
+.stabstr 0 ${RELOCATING+(NOLOAD)} :
+       {
+         [ .stabstr ]
+       }
+}
+EOF