source: rtems/c/src/lib/libbsp/mips/csb350/startup/linkcmds @ 46b6a01

4.104.115
Last change on this file since 46b6a01 was 46b6a01, checked in by Joel Sherrill <joel.sherrill@…>, on 04/25/10 at 16:11:05

2010-04-25 Joel Sherrill <joel.sherrilL@…>

  • startup/linkcmds: Add NOLOAD to .bss to eliminate warnings.
  • Property mode set to 100644
File size: 4.0 KB
Line 
1/*
2 *  Linker script for CSB350 AU1100 based board
3 *
4 *  $Id$
5 */
6
7/*    . = 0x80020000; */
8
9/*
10 * Declare some sizes.
11 */
12
13_sdram_base = DEFINED(_sdram_base) ? _sdram_base : 0x80400000;
14_sdram_size = DEFINED(_sdram_size) ? _sdram_size : 12M;
15
16/* standard items provided by RTEMS linkcmds files */
17RamBase = _sdram_base;
18RamSize = _sdram_size;
19HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
20_StackSize = DEFINED(_StackSize) ? _StackSize : 0x4000;
21
22MEMORY
23{
24   ram      : ORIGIN = 0x80400000, LENGTH = 12M
25}
26
27SECTIONS
28{
29    .text :
30    {
31       _ftext = . ;
32
33      */start.o(.text)
34
35      *(.text*)
36      *(.gnu.linkonce.t*)
37      *(.mips16.fn.*)
38      *(.mips16.call.*)
39      PROVIDE (__runtime_reloc_start = .);
40      *(.rel.sdata)
41      *(.rel.dyn)
42      PROVIDE (__runtime_reloc_stop = .);
43
44      /*
45       * Special FreeBSD sysctl sections.
46       */
47      . = ALIGN (16);
48      __start_set_sysctl_set = .;
49      *(set_sysctl_*);
50      __stop_set_sysctl_set = ABSOLUTE(.);
51      *(set_domain_*);
52      *(set_pseudo_*);
53
54      *(.gcc_except_table*)
55      *(.eh_frame_hdr)
56      *(.eh_frame)
57    } >ram 
58
59  .init :
60  {
61     KEEP(*(.init))
62
63  } > ram
64
65  .fini :
66  {
67     KEEP(*(.fini))
68
69  }  >ram
70
71
72  .ctors    :
73  {
74    /* gcc uses crtbegin.o to find the start of
75       the constructors, so we make sure it is
76       first.  Because this is a wildcard, it
77       doesn't matter if the user does not
78       actually link against crtbegin.o; the
79       linker won't look for a file to match a
80       wildcard.  The wildcard also means that it
81       doesn't matter which directory crtbegin.o
82       is in.  */
83
84    KEEP (*crtbegin.o(.ctors))
85
86    /* We don't want to include the .ctor section from
87       from the crtend.o file until after the sorted ctors.
88       The .ctor section from the crtend file contains the
89       end of ctors marker and it must be last */
90
91    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
92    KEEP (*(SORT(.ctors.*)))
93    KEEP (*(.ctors))
94  } >ram 
95
96  .dtors    :
97  {
98    KEEP (*crtbegin.o(.dtors))
99    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
100    KEEP (*(SORT(.dtors.*)))
101    KEEP (*(.dtors))
102
103    etext  =  .;
104    _etext  =  .;
105  } >ram 
106
107
108
109  .rdata :
110  {
111    *(.rdata)
112    *(.rodata)
113    *(.rodata.*)
114    *(.gnu.linkonce.r*)
115  } >ram 
116
117  .data :
118  {
119    _fdata = ALIGN(16);
120
121    *(.data)
122    *(.data.*)
123    *(.gnu.linkonce.d*)
124  } >ram 
125
126  .jcr :
127  {
128    . = ALIGN(8);
129    KEEP (*(.jcr))
130
131    _gp = ALIGN(16) + 0x7440;
132    __global = _gp;
133  } >ram
134
135  .lit8 :
136  {
137    *(.lit8)
138  } >ram 
139
140  .lit4 :
141  {
142    *(.lit4)
143  } >ram   
144
145  .sdata :   
146  {
147    *(.sdata*)
148    *(.gnu.linkonce.s*)
149  } >ram 
150
151  .sbss :
152  {
153   edata  =  .;
154   _edata  =  .;
155   _fbss = .;
156    *(.sbss*)
157    *(.scommon)
158  } >ram   
159
160  .bss (NOLOAD):
161  {
162    _bss_start = . ;
163    *(.bss .bss.* .gnu.linkonce.b.*)
164    *(.reginfo)
165    *(COMMON)
166    . = ALIGN (64);
167    _stack_limit = .;
168    . += _StackSize;
169    __stack = .;
170    _stack_init = .;
171    _clear_end = .;
172    end = .;
173    _end = .;
174    . = ALIGN (1024);
175    WorkAreaBase = .;
176   
177  } >ram   
178
179
180/*
181** DWARF debug sections.
182** Symbols in the DWARF debugging sections are relative to
183** the beginning of the section so we begin them at 0. 
184*/
185
186  /* DWARF 1 */
187  .debug          0 : { *(.debug) }
188  .line           0 : { *(.line) }
189
190  /* GNU DWARF 1 extensions */
191  .debug_srcinfo  0 : { *(.debug_srcinfo) }
192  .debug_sfnames  0 : { *(.debug_sfnames) }
193
194  /* DWARF 1.1 and DWARF 2 */
195  .debug_aranges  0 : { *(.debug_aranges) }
196  .debug_pubnames 0 : { *(.debug_pubnames) }
197
198  /* DWARF 2 */
199  .debug_info     0 : { *(.debug_info) }   
200  .debug_abbrev   0 : { *(.debug_abbrev) } 
201  .debug_line     0 : { *(.debug_line) }   
202  .debug_frame    0 : { *(.debug_frame)}   
203  .debug_str      0 : { *(.debug_str) }     
204  .debug_loc      0 : { *(.debug_loc) }     
205  .debug_macinfo  0 : { *(.debug_macinfo) }
206
207  /* SGI/MIPS DWARF 2 extensions */
208  .debug_weaknames 0 : { *(.debug_weaknames) }
209  .debug_funcnames 0 : { *(.debug_funcnames) }
210  .debug_typenames 0 : { *(.debug_typenames) }
211  .debug_varnames  0 : { *(.debug_varnames) } 
212}
Note: See TracBrowser for help on using the repository browser.