source: rtems/c/src/lib/libbsp/powerpc/eth_comm/startup/linkcmds @ 9c1133e

4.104.114.84.95
Last change on this file since 9c1133e was 9c1133e, checked in by Joel Sherrill <joel.sherrill@…>, on 01/20/03 at 19:57:14

mkChangeLogList [-n]

  • Property mode set to 100644
File size: 4.5 KB
Line 
1/*
2 *  This file contains directives for the GNU linker which are specific
3 *  to the Ethernet-Comm Board
4 *
5 *  $Id$
6 */
7
8OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
9              "elf32-powerpc")
10OUTPUT_ARCH(powerpc)
11 SEARCH_DIR(/usr/local/powerpc-rtems/lib);
12 
13ENTRY(start)
14 
15MEMORY
16        {
17        ram : org = 0x0, l = 4M
18        dpram : org = 0xff000000, l = 16K
19        canbus : org = 0xff100000, l = 12K
20        flash : org = 0xfff00000, l = 512K
21        }
22
23
24SECTIONS
25{
26        .vectors :
27        {
28          *(.vectors)
29        } >ram
30
31        /*
32         * The stack will live in this area - between the vectors and
33         * the text section.
34         */
35       
36        .text 0x10000:
37        {
38             text.start = .;
39             *(.entry)
40             *(.entry2)
41             *(.text)
42             *(.rodata*)
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             *(.eh_frame)
55             *(.gnu.linkonce.r*)
56             *(.rodata1)
57             *(.gnu.linkonce.t.*)
58             *(.descriptors)
59             /* .gnu.warning sections are handled specially by elf32.em.  */
60             *(.gnu.warning)
61             *(rom_ver)
62             etext = ALIGN(0x10);
63             _etext = .;
64       
65             __CTOR_LIST__ = .;
66             LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
67             *(.ctors)
68             LONG(0)
69             __CTOR_END__ = .;
70       
71             __DTOR_LIST__ = .;
72             LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
73             *(.dtors)
74             LONG(0)
75             __DTOR_END__ = .;
76       
77             *(.lit)
78             *(.shdata)
79             _init = .; *(.init)
80             _fini = .; *(.fini)
81             _endtext = .;
82             text.end = .;
83        } > ram
84 
85        /* R/W Data */
86        .data :
87        {
88          *(.data)
89          *(.data1)
90          *(.gnu.linkonce.d.*)
91          PROVIDE (__SDATA_START__ = .);
92          *(.sdata)
93          *(.gnu.linkonce.s.*)
94        } > ram
95       
96        PROVIDE (__EXCEPT_START__ = .);
97        .gcc_except_table   : { *(.gcc_except_table) } >ram
98        PROVIDE (__EXCEPT_END__ = .);
99        __GOT_START__ = .;
100        .got :
101        {
102           s.got = .;
103           *(.got.plt) *(.got)
104        } > ram
105        __GOT_END__ = .;
106       
107        .got1             : { *(.got1)          } >ram
108        PROVIDE (__GOT2_START__ = .);
109        PROVIDE (_GOT2_START_ = .);
110        .got2             :  { *(.got2)         } >ram
111        PROVIDE (__GOT2_END__ = .);
112        PROVIDE (_GOT2_END_ = .);
113       
114        PROVIDE (__FIXUP_START__ = .);
115        PROVIDE (_FIXUP_START_ = .);
116        .fixup    : { *(.fixup)         } >ram
117        PROVIDE (_FIXUP_END_ = .);
118        PROVIDE (__FIXUP_END__ = .);
119         
120        PROVIDE (__SDATA2_START__ = .);
121        .sdata2           : { *(.sdata2) *(.gnu.linkonce.s2.*)  } >ram
122        .sbss2            : { *(.sbss2) *(.gnu.linkonce.sb2.*)  } >ram
123        PROVIDE (__SBSS2_END__ = .);
124       
125        .sbss2            : { *(.sbss2)         } >ram
126        PROVIDE (__SBSS2_END__ = .);
127       
128        __SBSS_START__ = .;
129        .bss :
130        {
131          bss.start = .;
132          *(.bss) *(.sbss) *(COMMON)
133          . = ALIGN(4);
134          bss.end = .;
135        } > ram
136        __SBSS_END__ = .;
137
138        bss.size = bss.end - bss.start;
139        text.size = text.end - text.start;
140        PROVIDE(_end = bss.end);
141        /*
142         * Interrupt stack setup
143         */
144
145        IntrStack_start = ALIGN(0x10);
146        . += 0x4000;
147        intrStack = .;
148        PROVIDE(intrStackPtr = intrStack);
149       
150        dpram :
151        {
152          m8xx = .;
153          _m8xx = .;
154          . += (8 * 1024);
155        } >dpram
156
157        canbus :
158        {
159          canbus0 = .;
160          . += (0x1000);
161          canbus1 = .;
162          . += (0x1000);
163          canbus2 = .;
164          . += (0x1000);
165        } >canbus
166
167
168  /* Stabs debugging sections.  */
169  .stab 0 : { *(.stab) }
170  .stabstr 0 : { *(.stabstr) }
171  .stab.excl 0 : { *(.stab.excl) }
172  .stab.exclstr 0 : { *(.stab.exclstr) }
173  .stab.index 0 : { *(.stab.index) }
174  .stab.indexstr 0 : { *(.stab.indexstr) }
175  .comment 0 : { *(.comment) }
176
177  /* DWARF debug sections.
178     Symbols in the DWARF debugging sections are relative to the beginning
179     of the section so we begin them at 0.  */
180  /* DWARF 1 */
181  .debug          0 : { *(.debug) }
182  .line           0 : { *(.line) }
183 
184  /* GNU DWARF 1 extensions */
185  .debug_srcinfo  0 : { *(.debug_srcinfo) }
186  .debug_sfnames  0 : { *(.debug_sfnames) }
187 
188  /* DWARF 1.1 and DWARF 2 */
189  .debug_aranges  0 : { *(.debug_aranges) }
190  .debug_pubnames 0 : { *(.debug_pubnames) }
191 
192  /* DWARF 2 */
193  .debug_info     0 : { *(.debug_info) }
194  .debug_abbrev   0 : { *(.debug_abbrev) }
195  .debug_line     0 : { *(.debug_line) }
196  .debug_frame    0 : { *(.debug_frame) }
197  .debug_str      0 : { *(.debug_str) }
198  .debug_loc      0 : { *(.debug_loc) }
199  .debug_macinfo  0 : { *(.debug_macinfo) }
200 
201  /* SGI/MIPS DWARF 2 extensions */
202  .debug_weaknames 0 : { *(.debug_weaknames) }
203  .debug_funcnames 0 : { *(.debug_funcnames) }
204  .debug_typenames 0 : { *(.debug_typenames) }
205  .debug_varnames  0 : { *(.debug_varnames) }
206  /* These must appear regardless of  .  */
207
208}
Note: See TracBrowser for help on using the repository browser.