fixes for host gcc 4.6.1
[zpugcc/jano.git] / toolchain / gcc / libgloss / xstormy16 / sim_rom.ld
blobc8f5a8d169cf1a5680df4597f8706994e69429e4
1 /* Test xstormy16 programs that have initial data in ROM and copy it
2    to RAM.  */
4 OUTPUT_FORMAT("elf32-xstormy16", "elf32-xstormy16",
5               "elf32-xstormy16")
6 OUTPUT_ARCH(xstormy16)
7 ENTRY(_start)
8  SEARCH_DIR(/cuddles/aph/sanyo-011113-branch/install/xstormy16-elf/lib);
9 /* There are two memory regions we care about, one from 0 through 0x7F00
10    that is RAM and one from 0x8000 up which is ROM.  */
11 MEMORY
13   RAM (w) : ORIGIN = 0, LENGTH = 0x7F00
14   ROM (!w) : ORIGIN = 0x8000, LENGTH = 0xFF8000
16 SECTIONS
18   /* Read-only sections in ROM.  */
19   .int_vec       : { *(.int_vec)        } > ROM
20   .rodata   : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) } > ROM
21   .ctors   :
22   {
23     /* gcc uses crtbegin.o to find the start of
24        the constructors, so we make sure it is
25        first.  Because this is a wildcard, it
26        doesn't matter if the user does not
27        actually link against crtbegin.o; the
28        linker won't look for a file to match a
29        wildcard.  The wildcard also means that it
30        doesn't matter which directory crtbegin.o
31        is in.  */
32     KEEP (*crtbegin.o(.ctors))
33     /* We don't want to include the .ctor section from
34        from the crtend.o file until after the sorted ctors.
35        The .ctor section from the crtend file contains the
36        end of ctors marker and it must be last */
37     KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
38     KEEP (*(SORT(.ctors.*)))
39     KEEP (*(.ctors))
40   } > ROM
41    .dtors         :
42   {
43     KEEP (*crtbegin.o(.dtors))
44     KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
45     KEEP (*(SORT(.dtors.*)))
46     KEEP (*(.dtors))
47   } > ROM
48   .jcr : { KEEP (*(.jcr)) } > ROM
49   .eh_frame : { KEEP (*(.eh_frame)) } > ROM
50   .gcc_except_table : { *(.gcc_except_table) } > ROM
51   .plt : { *(.plt) } > ROM
52   .text      :
53   {
54     *(.text)
55     *(.text.*)
56     *(.stub)
57     /* .gnu.warning sections are handled specially by elf32.em.  */
58     *(.gnu.warning)
59     *(.gnu.linkonce.t.*)
60   } > ROM =0
61   .init          :
62   {
63     KEEP (*(.init))
64   } > ROM =0
65   .fini      :
66   {
67     KEEP (*(.fini))
68   } > ROM =0
69   PROVIDE (__etext = .);
70   PROVIDE (_etext = .);
71   PROVIDE (etext = .);
72   . = ALIGN(2);
73   __rdata = .;
74   .data    : AT (__rdata)
75   {
76     __data = .;
77     *(.data)
78     *(.data.*)
79     *(.gnu.linkonce.d.*)
80     SORT(CONSTRUCTORS)
81   } > RAM
82   _edata = .;
83   PROVIDE (edata = .);
84   __bss_start = .;
85   /* Why do we need to give bss an AT address at all?  Because if we
86      don't, ld will generate another program header for it rather than
87      using the one for .data.  */
88   .bss       : AT (LOADADDR(.data) + SIZEOF(.data))
89   {
90    *(.dynbss)
91    *(.bss)
92    *(.bss.*)
93    *(.gnu.linkonce.b.*)
94    *(COMMON)
95    /* Align here to ensure that the .bss section occupies space up to
96       _end.  Align after .bss to ensure correct alignment even if the
97       .bss section disappears because there are no input sections.  */
98    . = ALIGN(2);
99   } > RAM
100   . = ALIGN(2);
101   _end = .;
102   __stack = .;
103   PROVIDE (end = .);
104   /* Stabs debugging sections.  */
105   .stab 0 : { *(.stab) }
106   .stabstr 0 : { *(.stabstr) }
107   .stab.excl 0 : { *(.stab.excl) }
108   .stab.exclstr 0 : { *(.stab.exclstr) }
109   .stab.index 0 : { *(.stab.index) }
110   .stab.indexstr 0 : { *(.stab.indexstr) }
111   .comment 0 : { *(.comment) }
112   /* DWARF debug sections.
113      Symbols in the DWARF debugging sections are relative to the beginning
114      of the section so we begin them at 0.  */
115   /* DWARF 1 */
116   .debug          0 : { *(.debug) }
117   .line           0 : { *(.line) }
118   /* GNU DWARF 1 extensions */
119   .debug_srcinfo  0 : { *(.debug_srcinfo) }
120   .debug_sfnames  0 : { *(.debug_sfnames) }
121   /* DWARF 1.1 and DWARF 2 */
122   .debug_aranges  0 : { *(.debug_aranges) }
123   .debug_pubnames 0 : { *(.debug_pubnames) }
124   /* DWARF 2 */
125   .debug_info     0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
126   .debug_abbrev   0 : { *(.debug_abbrev) }
127   .debug_line     0 : { *(.debug_line) }
128   .debug_frame    0 : { *(.debug_frame) }
129   .debug_str      0 : { *(.debug_str) }
130   .debug_loc      0 : { *(.debug_loc) }
131   .debug_macinfo  0 : { *(.debug_macinfo) }
132   /* SGI/MIPS DWARF 2 extensions */
133   .debug_weaknames 0 : { *(.debug_weaknames) }
134   .debug_funcnames 0 : { *(.debug_funcnames) }
135   .debug_typenames 0 : { *(.debug_typenames) }
136   .debug_varnames  0 : { *(.debug_varnames) }
137   /* These must appear regardless of  .  */