OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.17.0/] [libgloss/] [mep/] [gmap_default.ld] - Blame information for rev 158

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 148 jeremybenn
/******************************************************************************
2
begin-header
3
 
4
   Copyright (c) 2000-2007  Red Hat, Inc. All rights reserved.
5
 
6
   This copyrighted material is made available to anyone wishing to use, modify,
7
   copy, or redistribute it subject to the terms and conditions of the BSD
8
   License.   This program is distributed in the hope that it will be useful,
9
   but WITHOUT ANY WARRANTY expressed or implied, including the implied
10
   warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  A copy
11
   of this license is available at http://www.opensource.org/licenses. Any
12
   Red Hat trademarks that are incorporated in the source code or documentation
13
   are not subject to the BSD License and may only be used or replicated with
14
   the express permission of Red Hat, Inc.
15
 
16
   Default linker script for use with the Configuration Tool for
17
   Toshiba Media Processor.
18
 
19
   When generating a configuration for a media module, M, the
20
   configuration tool will copy this file into a custom linker script
21
   M.ld, and customize the script with settings from the media
22
   module's global map file.
23
 
24
end-header
25
*******************************************************************************/
26
 
27
OUTPUT_FORMAT("elf32-mep", "elf32-mep",
28
              "elf32-mep")
29
OUTPUT_ARCH(mep)
30
ENTRY(_reset)
31
 
32
MEMORY
33
{
34
/* begin-memory */
35
  VEC   (r) : ORIGIN = 0x00000000, LENGTH = 0x000000b8
36
  ROM   (r) : ORIGIN = 0x000000b8, LENGTH = 0x001fff48
37
  RAM   (w) : ORIGIN = 0x00800000, LENGTH = 0x00800000
38
/* end-memory */
39
}
40
 
41
SECTIONS
42
{
43
  /* Sections to be placed in the vec area.  */
44
  .vec : { *(.vec) } >VEC /* VEC-section */
45
 
46
  /* Sections to be placed in the HWINIT area.  */
47
  .hwinit : { *(.hwinit) } >HWINIT /* HWINIT-section */
48
 
49
  /* Sections to be placed in the ROM area.  */
50
  .gnu.version   : { *(.gnu.version)    } >ROM /* ROM-section */
51
  .gnu.version_d : { *(.gnu.version_d)  } >ROM /* ROM-section */
52
  .gnu.version_r : { *(.gnu.version_r)  } >ROM /* ROM-section */
53
 
54
  /* Sections to be placed in the romdata.s area.  */
55
  .srodata :
56
  {
57
    __sdabase = . + 0x8000;
58
    *(.srodata) *(.srodata.*) *(.gnu.linkonce.srd.*)
59
  } >RAM /* DATA-section */
60
 
61
  /* Sections to be placed in the data.s area.  */
62
  .sdata     :
63
  {
64
    *(.sdata)
65
    *(.sdata.*)
66
    *(.gnu.linkonce.s.*)
67
  } >RAM /* DATA-section */
68
  .sbss      :
69
  {
70
    PROVIDE (__sbss_start = .);
71
    PROVIDE (___sbss_start = .);
72
    *(.dynsbss)
73
    *(.sbss)
74
    *(.sbss.*)
75
    *(.gnu.linkonce.sb.*)
76
    *(.scommon)
77
    PROVIDE (__sbss_end = .);
78
    PROVIDE (___sbss_end = .);
79
    /* Assert maximum size */
80
    __assert_tiny_size = ASSERT ((. < __sdabase) || ((. - __sdabase) <= 0x8000),
81
                                 "tiny section overflow");
82
  } >RAM /* DATA-section */
83
 
84
  /* Sections to be placed in the data.m area.  */
85
  .data    :
86
  {
87
    __data_start = . ;
88
    *(.data)
89
    *(.data.*)
90
    *(.gnu.linkonce.d.*)
91
    SORT(CONSTRUCTORS)
92
  } >RAM /* DATA-section */
93
  .data1   : { *(.data1) } >RAM /* DATA-section */
94
  .eh_frame : { KEEP (*(.eh_frame))} >RAM /* DATA-section */
95
  .gcc_except_table : { *(.gcc_except_table) *(.gcc_except_table.*) } >RAM /* DATA-section */
96
  .dynamic       : { *(.dynamic) } >RAM /* DATA-section */
97
  .ctors   :
98
  {
99
    /* gcc uses crtbegin.o to find the start of
100
       the constructors, so we make sure it is
101
       first.  Because this is a wildcard, it
102
       doesn't matter if the user does not
103
       actually link against crtbegin.o; the
104
       linker won't look for a file to match a
105
       wildcard.  The wildcard also means that it
106
       doesn't matter which directory crtbegin.o
107
       is in.  */
108
    KEEP (*crtbegin.o(.ctors))
109
    /* We don't want to include the .ctor section from
110
       from the crtend.o file until after the sorted ctors.
111
       The .ctor section from the crtend file contains the
112
       end of ctors marker and it must be last */
113
    KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
114
    KEEP (*(SORT(.ctors.*)))
115
    KEEP (*(.ctors))
116
  } >RAM /* DATA-section */
117
  .dtors         :
118
  {
119
    KEEP (*crtbegin.o(.dtors))
120
    KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
121
    KEEP (*(SORT(.dtors.*)))
122
    KEEP (*(.dtors))
123
  } >RAM /* DATA-section */
124
  .jcr :
125
  {
126
    . = ALIGN(4);
127
    *(.jcr)
128
  } >RAM /* DATA-section */
129
  .got :
130
  {
131
    *(.got.plt) *(.got)
132
    _edata = .;
133
    PROVIDE (edata = .);
134
  } >RAM /* DATA-section */
135
  .based :
136
  {
137
    __tpbase = .;
138
    *(.based) *(.based.*) *(.gnu.linkonce.based.*)
139
    /* Assert maximum size */
140
    __assert_based_size = ASSERT ((. - __tpbase) <= 0x80,
141
                                  "based section overflow");
142
  } >RAM /* DATA-section */
143
 
144
  .bss       :
145
  {
146
    __bss_start = .;
147
    *(.dynbss)
148
    *(.bss)
149
    *(.bss.*)
150
    *(.gnu.linkonce.b.*)
151
    *(COMMON)
152
    /* Align here to ensure that the .bss section occupies space up to
153
      _end.  Align after .bss to ensure correct alignment even if the
154
      .bss section disappears because there are no input sections.  */
155
    . = ALIGN(32 / 8);
156
    _end = .;
157
    PROVIDE (end = .);
158
  } >RAM /* DATA-section */
159
 
160
  /* Sections to be placed in the code.m area.  */
161
  .init          :
162
  {
163
    KEEP (*(.init))
164
  } >RAM /* CODE-section */
165
  .plt      : { *(.plt) } >RAM /* DATA-section */
166
  .text      :
167
  {
168
    *(.text)
169
    *(.text.*)
170
    *(.stub)
171
    /* .gnu.warning sections are handled specially by elf32.em.  */
172
    *(.gnu.warning)
173
    *(.gnu.linkonce.t.*)
174
  } >RAM /* CODE-section */ =0
175
  .vtext ALIGN(8)    :
176
  {
177
    *(.vtext)
178
  } >RAM /* CODE-section */
179
  .fini      :
180
  {
181
    KEEP (*(.fini))
182
    PROVIDE (__etext = .);
183
    PROVIDE (_etext = .);
184
    PROVIDE (etext = .);
185
  } >RAM /* CODE-section */ =0
186
 
187
  /* Sections to be placed in the romdata.m area.  */
188
  .rodata   : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) } >RAM /* DATA-section */
189
  .rodata1   : { *(.rodata1) } >RAM /* DATA-section */
190
 
191
  /* Sections to be placed in the code.l area.  */
192
  .ftext : {  *(.ftext) *(.ftext.*) *(.gnu.linkonce.ft.*) } >RAM /* CODE-section */
193
  .vftext ALIGN(8)    :
194
  {
195
    *(.vftext) *(.vftext.*) *(.gnu.linkonce.vf.*)
196
  } >RAM /* CODE-section */
197
 
198
  /* Sections to be placed in the romdata.l area.  */
199
  .frodata :
200
  {
201
    *(.frodata) *(.frodata.*) *(.gnu.linkonce.frd.*)
202
    __assert_near_size = ASSERT (. <= 0x1000000, "near section overflow");
203
  } >RAM /* DATA-section */
204
 
205
  /* Sections to be placed in the data.l area.  */
206
  .far : { *(.far) *(.far.*) *(.gnu.linkonce.far.*) } >RAM /* DATA-section */
207
  .farbss :
208
  { PROVIDE (__farbss_start = .);
209
    *(.farbss) *(.farbss.*)
210
    PROVIDE (__farbss_end = .);
211
  } >RAM /* DATA-section */
212
 
213
  /* END-mep-sections */
214
 
215
  /* begin-stack-table */
216
  __stack0  = (__stack - (0 *  (__stack_size / 1)) + 15) / 16 * 16;
217
 
218
  .rostacktab :
219
  {
220
    /* Emit a table describing the location of the different stacks.
221
       Only 1 processor in the default configuration.  */
222
    . = ALIGN(4);
223
    __stack_table = .;
224
    LONG (__stack0);
225
    __stack_end = .;
226
  } >RAM
227
  /* end-stack-table */
228
 
229
  /* begin-heap */
230
  /* End of DATA is 0x00800000 + 0x00800000. That's where the heap will end.  */
231
  __heap_end = 0x00800000 + 0x00800000 - 1;
232
  /* end-heap */
233
 
234
  /* Default stack size is 1M.  That's where the heap will start if there's
235
     room.  If there's not enough room, allocate half of the remaining space
236
     for stack and half for heap.  Align the heap on a 16 byte boundary.  */
237
  __stack_size = (__stack_end + 0x100000 <= __heap_end + 1
238
                  ? 0x100000
239
                  : ((__heap_end + 1 - __stack_end) / 2));
240
  __heap = (__stack_end + __stack_size + 15) / 16 * 16;
241
 
242
  /* Leave 16 bytes between the stack and the heap.  */
243
  __stack = __heap - 0x10;
244
 
245
  /* Stabs debugging sections.  */
246
  .stab 0 : { *(.stab) }
247
  .stabstr 0 : { *(.stabstr) }
248
  .stab.excl 0 : { *(.stab.excl) }
249
  .stab.exclstr 0 : { *(.stab.exclstr) }
250
  .stab.index 0 : { *(.stab.index) }
251
  .stab.indexstr 0 : { *(.stab.indexstr) }
252
  .comment 0 : { *(.comment) }
253
  /* DWARF debug sections.
254
     Symbols in the DWARF debugging sections are relative to the beginning
255
     of the section so we begin them at 0.  */
256
  /* DWARF 1 */
257
  .debug          0 : { *(.debug) }
258
  .line           0 : { *(.line) }
259
  /* GNU DWARF 1 extensions */
260
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
261
  .debug_sfnames  0 : { *(.debug_sfnames) }
262
  /* DWARF 1.1 and DWARF 2 */
263
  .debug_aranges  0 : { *(.debug_aranges) }
264
  .debug_pubnames 0 : { *(.debug_pubnames) }
265
  /* DWARF 2 */
266
  .debug_info     0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
267
  .debug_abbrev   0 : { *(.debug_abbrev) }
268
  .debug_line     0 : { *(.debug_line) }
269
  .debug_frame    0 : { *(.debug_frame) }
270
  .debug_str      0 : { *(.debug_str) }
271
  .debug_loc      0 : { *(.debug_loc) }
272
  .debug_macinfo  0 : { *(.debug_macinfo) }
273
  .debug_ranges   0 : { *(.debug_ranges) }
274
  /* SGI/MIPS DWARF 2 extensions */
275
  .debug_weaknames 0 : { *(.debug_weaknames) }
276
  .debug_funcnames 0 : { *(.debug_funcnames) }
277
  .debug_typenames 0 : { *(.debug_typenames) }
278
  .debug_varnames  0 : { *(.debug_varnames) }
279
  /* These must appear regardless of  .  */
280
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.