source: rtems/c/src/lib/libbsp/sparc/erc32/startup/linkcmds @ b6f298c7

4.104.115
Last change on this file since b6f298c7 was b6f298c7, checked in by Joel Sherrill <joel.sherrill@…>, on 09/17/08 at 19:28:50

2008-09-17 Joel Sherrill <joel.sherrill@…>

  • startup/linkcmds: Add start symbol to eliminate warning.
  • Property mode set to 100644
File size: 4.1 KB
Line 
1/*  linkcmds
2 *
3 *  $Id$
4 */
5
6OUTPUT_ARCH(sparc)
7__DYNAMIC  =  0;
8
9/*
10 * The memory map looks like this:
11 * +--------------------+ <- low memory
12 * | .text              |
13 * |        etext       |
14 * |        ctor list   | the ctor and dtor lists are for
15 * |        dtor list   | C++ support
16 * |        _endtext    |
17 * +--------------------+
18 * | .data              | initialized data goes here
19 * |        _sdata      |
20 * |        _edata      |
21 * +--------------------+
22 * | .bss               |
23 * |        __bss_start | start of bss, cleared by crt0
24 * |        _end        | start of heap, used by sbrk()
25 * +--------------------+
26 * |    heap space      |
27 * |        _ENDHEAP    |
28 * |    stack space     |
29 * |        __stack     | top of stack
30 * +--------------------+ <- high memory
31 */
32
33
34/*
35 * User modifiable values:
36 *
37 * _CLOCK_SPEED               in Mhz (used to program the counter/timers)
38 *
39 * _PROM_SIZE                 size of PROM (permissible values are 128K, 256K,
40 *                               512K, 1M, 2M, 4M, 8M and 16M)
41 * _RAM_SIZE                  size of RAM (permissible values are 256K, 512K,
42 *                               1M, 2M, 4M, 8M, 16M, and 32M)
43 *
44 */
45
46/* Default values, can be overridden */
47
48_PROM_SIZE = 2M;
49_RAM_SIZE = 4M;
50
51_RAM_START = 0x02000000;
52_RAM_END = _RAM_START + _RAM_SIZE;
53
54_PROM_START = 0x00000000;
55_PROM_END = _PROM_START + _PROM_SIZE;
56
57/*
58 *  Alternate names without leading _.
59 */
60
61PROM_START = _PROM_START;
62PROM_SIZE = _PROM_SIZE;
63PROM_END = _PROM_END;
64
65RAM_START = _RAM_START;
66RAM_SIZE = _RAM_SIZE;
67RAM_END = _RAM_END;
68
69/*
70 *  Base address of the on-CPU peripherals
71 */
72
73_ERC32_MEC = 0x01f80000;
74ERC32_MEC = 0x01f80000;
75
76/* these are the maximum values */
77
78MEMORY
79{
80  rom     : ORIGIN = 0x00000000, LENGTH = 16
81  ram     : ORIGIN = 0x02000000, LENGTH = 32M
82}
83
84/*
85 * SPARC monitor assumes this is present to provide proper RTEMS awareness.
86 */
87EXTERN(rtems_get_version_string);
88
89/*
90 * stick everything in ram (of course)
91 */
92SECTIONS
93{
94  .text :
95  {
96    CREATE_OBJECT_SYMBOLS
97    start = .;
98    text_start = .;
99    _text_start = .;
100    *(.text*)
101    . = ALIGN (16);
102
103
104    /*
105     * Special FreeBSD sysctl sections.
106     */
107    . = ALIGN (16);
108    __start_set_sysctl_set = .;
109    *(set_sysctl_*);
110    __stop_set_sysctl_set = ABSOLUTE(.);
111    *(set_domain_*);
112    *(set_pseudo_*);
113
114    *(.eh_frame)
115    . = ALIGN (16);
116
117    *(.gnu.linkonce.t*)
118
119    /*
120     * C++ constructors
121     */
122    __CTOR_LIST__ = .;
123    LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
124    *(.ctors)
125    LONG(0)
126    __CTOR_END__ = .;
127    __DTOR_LIST__ = .;
128    LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
129    *(.dtors)
130    LONG(0)
131    __DTOR_END__ = .;
132
133    _rodata_start = . ;
134    *(.rodata*)
135    *(.gnu.linkonce.r*)
136    _erodata = ALIGN( 0x10 ) ;
137
138    etext = ALIGN(0x10);
139    _etext = .;
140    *(.init)
141    *(.fini)
142    *(.lit)
143    *(.shdata)
144    . = ALIGN (16);
145    _endtext = .;
146  } > ram
147  .rela.dyn       :
148    {
149      *(.rela.init)
150      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
151      *(.rela.fini)
152      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
153      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
154      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
155      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
156      *(.rela.ctors)
157      *(.rela.dtors)
158      *(.rela.got)
159      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
160    } >ram
161  .data :
162  {
163    data_start = .;
164    _data_start = .;
165    _sdata = . ;
166    *(.data*)
167    *(.gnu.linkonce.d*)
168    *(.gcc_except_table*)
169    . = ALIGN(0x10);
170    edata = .;
171    _edata = .;
172  } > ram
173  .dynamic        : { *(.dynamic)       } >ram
174  .jcr            : { *(.jcr)           } >ram
175  .got            : { *(.got)           } >ram
176  .plt            : { *(.plt)           } >ram
177  .hash           : { *(.hash)          } >ram
178  .dynrel         : { *(.dynrel)        } >ram
179  .dynsym         : { *(.dynsym)        } >ram
180  .dynstr         : { *(.dynstr)        } >ram
181  .hash           : { *(.hash)          } >ram
182  .shbss :
183  {
184    *(.shbss)
185  } > ram
186  .bss :
187  {
188    __bss_start = ALIGN(0x8);
189    _bss_start = .;
190    bss_start = .;
191    *(.bss .bss* .gnu.linkonce.b*)
192    *(COMMON)
193    . = ALIGN (16);
194    end = .;
195    _end = .;
196    __end = .;
197  } > ram
198  .stab . (NOLOAD) :
199  {
200    [ .stab ]
201  }
202  .stabstr . (NOLOAD) :
203  {
204    [ .stabstr ]
205  }
206}
Note: See TracBrowser for help on using the repository browser.