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

4.104.114.84.95
Last change on this file since 38d65f80 was 38d65f80, checked in by Joel Sherrill <joel.sherrill@…>, on 11/16/99 at 22:56:53

Fixed alignment problem on _endtext.

  • Property mode set to 100644
File size: 3.3 KB
RevLine 
[cb585c3]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 *
[b73e57b]39 * _PROM_SIZE                 size of PROM (permissible values are 128K, 256K,
40 *                               512K, 1M, 2M, 4M, 8M and 16M)
[cb585c3]41 * _RAM_SIZE                  size of RAM (permissible values are 256K, 512K,
[b73e57b]42 *                               1M, 2M, 4M, 8M, 16M, and 32M)
[cb585c3]43 *
44 */
45
[b73e57b]46/* Default values, can be overridden */
[cb585c3]47
[b73e57b]48_PROM_SIZE = 2M;
49_RAM_SIZE = 4M;
[cb585c3]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
[b73e57b]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
[cb585c3]69/*
70 *  Base address of the on-CPU peripherals
71 */
72
73_ERC32_MEC = 0x01f80000;
[7782f9fc]74ERC32_MEC = 0x01f80000;
[cb585c3]75
[b73e57b]76/* these are the maximum values */
77
[cb585c3]78MEMORY
79{
[b73e57b]80  rom     : ORIGIN = 0x00000000, LENGTH = 16
81  ram     : ORIGIN = 0x02000000, LENGTH = 32M
[cb585c3]82}
83
84/*
85 * stick everything in ram (of course)
86 */
87SECTIONS
88{
89  .text :
90  {
91    CREATE_OBJECT_SYMBOLS
92    text_start = .;
93    _text_start = .;
94    *(.text)
[f86ec42]95    . = ALIGN (16);
96
[ac384b9]97    *(.eh_frame)
[f86ec42]98    . = ALIGN (16);
99
[ac384b9]100    *(.gnu.linkonce.t*)
101
[f86ec42]102    /*
103     * C++ constructors
104     */
105    __CTOR_LIST__ = .;
106    LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
107    *(.ctors)
108    LONG(0)
109    __CTOR_END__ = .;
110    __DTOR_LIST__ = .;
111    LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
112    *(.dtors)
113    LONG(0)
114    __DTOR_END__ = .;
[ac384b9]115
116    _rodata_start = . ;
117    *(.rodata)
118    *(.gnu.linkonce.r*)
119    _erodata = ALIGN( 0x10 ) ;
120
[cb585c3]121    etext = ALIGN(0x10);
122    _etext = .;
[a92280e0]123    *(.init)
124    *(.fini)
[cb585c3]125    *(.lit)
126    *(.shdata)
[38d65f80]127    . = ALIGN (16);
[cb585c3]128    _endtext = .;
129  } > ram
[1ca488b]130  .dynamic        : { *(.dynamic)       } >ram
131  .got            : { *(.got)           } >ram
132  .plt            : { *(.plt)           } >ram
133  .hash           : { *(.hash)          } >ram
134  .dynrel         : { *(.dynrel)        } >ram
135  .dynsym         : { *(.dynsym)        } >ram
136  .dynstr         : { *(.dynstr)        } >ram
137  .hash           : { *(.hash)          } >ram
[cb585c3]138  .data :
139  {
140    data_start = .;
141    _data_start = .;
142    _sdata = . ;
143    *(.data)
[ac384b9]144    *(.gnu.linkonce.d*)
145    *(.gcc_except_table)
[cb585c3]146    edata = ALIGN(0x10);
147    _edata = .;
148  } > ram
149  .shbss :
150  {
151    *(.shbss)
152  } > ram
153  .bss :
154  {
155    __bss_start = ALIGN(0x8);
156    _bss_start = .;
157    bss_start = .;
158    *(.bss)
159    *(COMMON)
160    end = .;
161    _end = ALIGN(0x8);
162    __end = ALIGN(0x8);
163  } > ram
164  .stab . (NOLOAD) :
165  {
166    [ .stab ]
167  }
168  .stabstr . (NOLOAD) :
169  {
170    [ .stabstr ]
171  }
172}
Note: See TracBrowser for help on using the repository browser.