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",
27 SEARCH_DIR(/usr/local/arm/2.95.3/arm-linux/lib);
28 /* Do we need any of these for elf?
32 /* Read-only sections, merged into text segment: */
39 /* .gnu.warning sections are handled specially by elf32.em. */
42 *(.glue_7t) *(.glue_7)
44 .interp : { *(.interp) }
46 .dynsym : { *(.dynsym) }
47 .dynstr : { *(.dynstr) }
48 .gnu.version : { *(.gnu.version) }
49 .gnu.version_d : { *(.gnu.version_d) }
50 .gnu.version_r : { *(.gnu.version_r) }
51 .rel.init : { *(.rel.init) }
52 .rela.init : { *(.rela.init) }
57 *(.rel.gnu.linkonce.t.*)
63 *(.rela.gnu.linkonce.t.*)
65 .rel.fini : { *(.rel.fini) }
66 .rela.fini : { *(.rela.fini) }
71 *(.rel.gnu.linkonce.r.*)
77 *(.rela.gnu.linkonce.r.*)
83 *(.rel.gnu.linkonce.d.*)
89 *(.rela.gnu.linkonce.d.*)
91 .rel.ctors : { *(.rel.ctors) }
92 .rela.ctors : { *(.rela.ctors) }
93 .rel.dtors : { *(.rel.dtors) }
94 .rela.dtors : { *(.rela.dtors) }
95 .rel.got : { *(.rel.got) }
96 .rela.got : { *(.rela.got) }
101 *(.rel.gnu.linkonce.s.*)
107 *(.rela.gnu.linkonce.s.*)
113 *(.rel.gnu.linkonce.sb.*)
119 *(.rel.gnu.linkonce.sb.*)
125 *(.rel.gnu.linkonce.s2.*)
131 *(.rela.gnu.linkonce.s2.*)
137 *(.rel.gnu.linkonce.sb2.*)
143 *(.rela.gnu.linkonce.sb2.*)
149 *(.rel.gnu.linkonce.b.*)
155 *(.rela.gnu.linkonce.b.*)
157 .rel.plt : { *(.rel.plt) }
158 .rela.plt : { *(.rela.plt) }
168 PROVIDE (__etext = .);
169 PROVIDE (_etext = .);
171 .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) }
172 .rodata1 : { *(.rodata1) }
173 .sdata2 : { *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) }
174 .sbss2 : { *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) }
183 .data1 : { *(.data1) }
185 .eh_frame : { KEEP (*(.eh_frame)) }
186 .gcc_except_table : { *(.gcc_except_table) }
189 /* gcc uses crtbegin.o to find the start of
190 the constructors, so we make sure it is
191 first. Because this is a wildcard, it
192 doesn't matter if the user does not
193 actually link against crtbegin.o; the
194 linker won't look for a file to match a
195 wildcard. The wildcard also means that it
196 doesn't matter which directory crtbegin.o
198 KEEP (*crtbegin.o(.ctors))
199 /* We don't want to include the .ctor section from
200 from the crtend.o file until after the sorted ctors.
201 The .ctor section from the crtend file contains the
202 end of ctors marker and it must be last */
203 KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
204 KEEP (*(SORT(.ctors.*)))
209 KEEP (*crtbegin.o(.dtors))
210 KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
211 KEEP (*(SORT(.dtors.*)))
214 .got : { *(.got.plt) *(.got) }
215 .dynamic : { *(.dynamic) }
216 /* We want the small data sections together, so single-instruction offsets
217 can access them all, and initialized data all before uninitialized, so
218 we can shorten the on-disk segment size. */
231 PROVIDE (__sbss_start = .);
232 PROVIDE (___sbss_start = .);
236 *(.gnu.linkonce.sb.*)
238 PROVIDE (__sbss_end = .);
239 PROVIDE (___sbss_end = .);
248 /* Align here to ensure that the .bss section occupies space up to
249 _end. Align after .bss to ensure correct alignment even if the
250 .bss section disappears because there are no input sections. */
255 _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
257 /* Stabs debugging sections. */
258 .stab 0 : { *(.stab) }
259 .stabstr 0 : { *(.stabstr) }
260 .stab.excl 0 : { *(.stab.excl) }
261 .stab.exclstr 0 : { *(.stab.exclstr) }
262 .stab.index 0 : { *(.stab.index) }
263 .stab.indexstr 0 : { *(.stab.indexstr) }
264 .comment 0 : { *(.comment) }
265 /* DWARF debug sections.
266 Symbols in the DWARF debugging sections are relative to the beginning
267 of the section so we begin them at 0. */
269 .debug 0 : { *(.debug) }
270 .line 0 : { *(.line) }
271 /* GNU DWARF 1 extensions */
272 .debug_srcinfo 0 : { *(.debug_srcinfo) }
273 .debug_sfnames 0 : { *(.debug_sfnames) }
274 /* DWARF 1.1 and DWARF 2 */
275 .debug_aranges 0 : { *(.debug_aranges) }
276 .debug_pubnames 0 : { *(.debug_pubnames) }
278 .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
279 .debug_abbrev 0 : { *(.debug_abbrev) }
280 .debug_line 0 : { *(.debug_line) }
281 .debug_frame 0 : { *(.debug_frame) }
282 .debug_str 0 : { *(.debug_str) }
283 .debug_loc 0 : { *(.debug_loc) }
284 .debug_macinfo 0 : { *(.debug_macinfo) }
285 /* SGI/MIPS DWARF 2 extensions */
286 .debug_weaknames 0 : { *(.debug_weaknames) }
287 .debug_funcnames 0 : { *(.debug_funcnames) }
288 .debug_typenames 0 : { *(.debug_typenames) }
289 .debug_varnames 0 : { *(.debug_varnames) }
290 /* These must appear regardless of . */