1 /*******************************************************************************
5 * linker config file used for internal RAM or eeprom images at address 0.
7 * Revision information:
9 * 20AUG2004 kb_admin initial creation
10 * 12JAN2005 kb_admin move data to SDRAM
13 * No warranty, expressed or implied, is included with this software. It is
14 * provided "AS IS" and no warranty of any kind including statutory or aspects
15 * relating to merchantability or fitness for any purpose is provided. All
16 * intellectual property rights of others is maintained with the respective
17 * owners. This software is not copyrighted and is intended for reference
22 ******************************************************************************/
23 OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
29 /* Read-only sections, merged into text segment: */
36 /* .gnu.warning sections are handled specially by elf32.em. */
39 *(.glue_7t) *(.glue_7)
41 .interp : { *(.interp) }
43 .dynsym : { *(.dynsym) }
44 .dynstr : { *(.dynstr) }
45 .gnu.version : { *(.gnu.version) }
46 .gnu.version_d : { *(.gnu.version_d) }
47 .gnu.version_r : { *(.gnu.version_r) }
48 .rel.init : { *(.rel.init) }
49 .rela.init : { *(.rela.init) }
54 *(.rel.gnu.linkonce.t.*)
60 *(.rela.gnu.linkonce.t.*)
62 .rel.fini : { *(.rel.fini) }
63 .rela.fini : { *(.rela.fini) }
68 *(.rel.gnu.linkonce.r.*)
74 *(.rela.gnu.linkonce.r.*)
80 *(.rel.gnu.linkonce.d.*)
86 *(.rela.gnu.linkonce.d.*)
88 .rel.ctors : { *(.rel.ctors) }
89 .rela.ctors : { *(.rela.ctors) }
90 .rel.dtors : { *(.rel.dtors) }
91 .rela.dtors : { *(.rela.dtors) }
92 .rel.got : { *(.rel.got) }
93 .rela.got : { *(.rela.got) }
98 *(.rel.gnu.linkonce.s.*)
104 *(.rela.gnu.linkonce.s.*)
110 *(.rel.gnu.linkonce.sb.*)
116 *(.rel.gnu.linkonce.sb.*)
122 *(.rel.gnu.linkonce.s2.*)
128 *(.rela.gnu.linkonce.s2.*)
134 *(.rel.gnu.linkonce.sb2.*)
140 *(.rela.gnu.linkonce.sb2.*)
146 *(.rel.gnu.linkonce.b.*)
152 *(.rela.gnu.linkonce.b.*)
154 .rel.plt : { *(.rel.plt) }
155 .rela.plt : { *(.rela.plt) }
165 PROVIDE (__etext = .);
166 PROVIDE (_etext = .);
168 .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) }
169 .rodata1 : { *(.rodata1) }
170 .sdata2 : { *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) }
171 .sbss2 : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) }
180 .data1 : { *(.data1) }
182 .eh_frame : { KEEP (*(.eh_frame)) }
183 .gcc_except_table : { *(.gcc_except_table) }
186 /* gcc uses crtbegin.o to find the start of
187 the constructors, so we make sure it is
188 first. Because this is a wildcard, it
189 doesn't matter if the user does not
190 actually link against crtbegin.o; the
191 linker won't look for a file to match a
192 wildcard. The wildcard also means that it
193 doesn't matter which directory crtbegin.o
195 KEEP (*crtbegin.o(.ctors))
196 /* We don't want to include the .ctor section from
197 from the crtend.o file until after the sorted ctors.
198 The .ctor section from the crtend file contains the
199 end of ctors marker and it must be last */
200 KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
201 KEEP (*(SORT(.ctors.*)))
206 KEEP (*crtbegin.o(.dtors))
207 KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
208 KEEP (*(SORT(.dtors.*)))
211 .got : { *(.got.plt) *(.got) }
212 .dynamic : { *(.dynamic) }
213 /* We want the small data sections together, so single-instruction offsets
214 can access them all, and initialized data all before uninitialized, so
215 we can shorten the on-disk segment size. */
228 PROVIDE (__sbss_start = .);
229 PROVIDE (___sbss_start = .);
233 *(.gnu.linkonce.sb.*)
235 PROVIDE (__sbss_end = .);
236 PROVIDE (___sbss_end = .);
245 /* Align here to ensure that the .bss section occupies space up to
246 _end. Align after .bss to ensure correct alignment even if the
247 .bss section disappears because there are no input sections. */
252 _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
254 /* Stabs debugging sections. */
255 .stab 0 : { *(.stab) }
256 .stabstr 0 : { *(.stabstr) }
257 .stab.excl 0 : { *(.stab.excl) }
258 .stab.exclstr 0 : { *(.stab.exclstr) }
259 .stab.index 0 : { *(.stab.index) }
260 .stab.indexstr 0 : { *(.stab.indexstr) }
261 .comment 0 : { *(.comment) }
262 /* DWARF debug sections.
263 Symbols in the DWARF debugging sections are relative to the beginning
264 of the section so we begin them at 0. */
266 .debug 0 : { *(.debug) }
267 .line 0 : { *(.line) }
268 /* GNU DWARF 1 extensions */
269 .debug_srcinfo 0 : { *(.debug_srcinfo) }
270 .debug_sfnames 0 : { *(.debug_sfnames) }
271 /* DWARF 1.1 and DWARF 2 */
272 .debug_aranges 0 : { *(.debug_aranges) }
273 .debug_pubnames 0 : { *(.debug_pubnames) }
275 .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
276 .debug_abbrev 0 : { *(.debug_abbrev) }
277 .debug_line 0 : { *(.debug_line) }
278 .debug_frame 0 : { *(.debug_frame) }
279 .debug_str 0 : { *(.debug_str) }
280 .debug_loc 0 : { *(.debug_loc) }
281 .debug_macinfo 0 : { *(.debug_macinfo) }
282 /* SGI/MIPS DWARF 2 extensions */
283 .debug_weaknames 0 : { *(.debug_weaknames) }
284 .debug_funcnames 0 : { *(.debug_funcnames) }
285 .debug_typenames 0 : { *(.debug_typenames) }
286 .debug_varnames 0 : { *(.debug_varnames) }
287 /* These must appear regardless of . */