1TORS=".tors :
2	{
3	  ___ctors = . ;
4	  *(.ctors)
5	  ___ctors_end = . ;
6	  ___dtors = . ;
7	  *(.dtors)
8	  ___dtors_end = . ;
9	} > ram"
10
11cat <<EOF
12OUTPUT_FORMAT("${OUTPUT_FORMAT}")
13OUTPUT_ARCH(h8300hn)
14ENTRY("_start")
15
16MEMORY
17{
18	/* 0xc4 is a magic entry.  We should have the linker just
19	   skip over it one day...  */
20	vectors : o = 0x0000, l = 0xc4
21	magicvectors : o = 0xc4, l = 0x3c
22	ram    : o = 0x0100, l = 0xfdfc
23	/* The stack starts at the top of main ram.  */
24	topram : o = 0xfefc, l = 0x4
25	/* At the very top of the address space is the 8-bit area.  */
26	eight : o = 0xff00, l = 0x100
27}
28
29SECTIONS
30{
31.vectors :
32	{
33	  /* Use something like this to place a specific
34	     function's address into the vector table.
35
36	     SHORT (ABSOLUTE (_foobar)).  */
37
38	  *(.vectors)
39	} ${RELOCATING+ > vectors}
40
41.text :
42	{
43	  *(.rodata)
44	  *(.text)
45	  *(.strings)
46   	  ${RELOCATING+ _etext = . ; }
47	} ${RELOCATING+ > ram}
48
49${CONSTRUCTING+${TORS}}
50
51.data :
52	{
53	  *(.data)
54	  *(.tiny)
55	  ${RELOCATING+ _edata = . ; }
56	} ${RELOCATING+ > ram}
57
58.bss :
59	{
60	  ${RELOCATING+ _bss_start = . ;}
61	  *(.bss)
62	  *(COMMON)
63	  ${RELOCATING+ _end = . ;  }
64	} ${RELOCATING+ >ram}
65
66.stack :
67	{
68	  ${RELOCATING+ _stack = . ; }
69	  *(.stack)
70	} ${RELOCATING+ > topram}
71
72.eight :
73	{
74	  *(.eight)
75	} ${RELOCATING+ > eight}
76
77.stab 0 ${RELOCATING+(NOLOAD)} :
78	{
79	  [ .stab ]
80	}
81
82.stabstr 0 ${RELOCATING+(NOLOAD)} :
83	{
84	  [ .stabstr ]
85	}
86}
87EOF
88