source: rtems/c/src/lib/libbsp/powerpc/gen405/startup/linkcmds @ 11a4a3b2

4.104.114.84.95
Last change on this file since 11a4a3b2 was 11a4a3b2, checked in by Ralf Corsepius <ralf.corsepius@…>, on Dec 9, 2003 at 2:52:00 PM

2003-12-09 Ralf Corsepius <corsepiu@…>

  • startup/Makefile.am: Misc cleanups and fixes.
  • startup/linkcmds: Preparations to gcc-3.3.x.
  • wrapup/Makefile.am: Misc cleanups and fixes.
  • Property mode set to 100644
File size: 3.2 KB
Line 
1/*
2 *  This file contains directives for the GNU linker which are specific
3 *  to the gen405
4 *  This file is intended to be used together with dlentry.s
5 *  it will generate downloadable code
6 *
7 *  Modifications for gen405 by Dennis Ehlin
8 *
9 *  $Id$
10 */
11
12OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
13              "elf32-powerpc")
14OUTPUT_ARCH(powerpc)
15 SEARCH_DIR(/usr/local/powerpc-rtems/lib);
16 
17ENTRY(download_entry)
18 
19MEMORY
20  {
21        RAM : ORIGIN = 0, LENGTH = 64M
22        FLASH : ORIGIN = 0xFFE00000, LENGTH = 16M
23  }
24SECTIONS
25{
26  .vectors 0x00000100 :
27  {
28    *(.vectors)
29  } > RAM
30 
31  .text :
32  {
33     text.start = . ;
34     *(.entry)
35     *(.entry2)
36     *(.text)
37     *(.rodata*)
38     *(.rodata1)
39
40     /*
41      * Special FreeBSD sysctl sections.
42      */
43     . = ALIGN (16);
44     __start_set_sysctl_set = .;
45     *(set_sysctl_*);
46     __stop_set_sysctl_set = ABSOLUTE(.);
47     *(set_domain_*);
48     *(set_pseudo_*);
49
50     *(.eh_frame)
51     *(.gnu.linkonce.r*)
52     *(.descriptors)
53     *(rom_ver)
54     etext = ALIGN(0x10);
55     _etext = .;
56
57     *(.gnu.linkonce.t*)
58
59     __CTOR_LIST__ = .;
60     LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
61     *(.ctors)
62     LONG(0)
63     __CTOR_END__ = .;
64
65     __DTOR_LIST__ = .;
66     LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
67     *(.dtors)
68     LONG(0)
69     __DTOR_END__ = .;
70
71     *(.lit)
72     *(.shdata)
73     _init = .; __init = .; *(.init)
74     _fini = .; __fini = .; *(.fini)
75     _endtext = ALIGN(0x10);
76     text.end = .;
77  } > RAM
78
79  text.size = text.end - text.start;
80
81  /* R/W Data */
82  .data :
83  {
84    *(.data)
85    *(.data1)
86     *(.data.* .gnu.linkonce.d*)
87    PROVIDE (__SDATA_START__ = .);
88    *(.sdata)
89    *(.gnu.linkonce.s.*)
90  } > RAM
91 
92  PROVIDE (__EXCEPT_START__ = .);
93  .gcc_except_table   :
94  {
95        *(.gcc_except_table)
96  } >RAM
97  PROVIDE (__EXCEPT_END__ = .);
98
99  __GOT_START__ = .;
100  .got :
101  {
102     s.got = .;
103     *(.got.plt) *(.got)
104  } > RAM
105  __GOT_END__ = .;
106
107  .got1 :
108  {
109        *(.got1)               
110  } >RAM
111
112  PROVIDE (__GOT2_START__ = .);
113  PROVIDE (_GOT2_START_ = .);
114  .got2           : 
115  {
116        *(.got2)       
117  } >RAM
118  PROVIDE (__GOT2_END__ = .);
119  PROVIDE (_GOT2_END_ = .);
120
121  PROVIDE (__FIXUP_START__ = .);
122  PROVIDE (_FIXUP_START_ = .);
123  .fixup          : { *(.fixup)         } >RAM
124  PROVIDE (_FIXUP_END_ = .);
125  PROVIDE (__FIXUP_END__ = .);
126 
127  PROVIDE (__SDATA2_START__ = .);
128  .sdata2         : { *(.sdata2) *(.gnu.linkonce.s2.*)  } >RAM
129  .sbss2          : { *(.sbss2) *(.gnu.linkonce.sb2.*)  } >RAM
130  PROVIDE (__SBSS2_END__ = .);
131
132  __SBSS_START__ = .;
133  .bss :
134  {
135    bss.start = .;
136    *(.bss) *(.sbss) *(COMMON)
137    bss.end = ALIGN(4);
138  } > RAM
139  __SBSS_END__ = .;
140 
141  bss.size = bss.end - bss.start;
142  PROVIDE(_end = bss.end);
143 
144  /* reserve 512K for heap */
145  heap.end = bss.end + 512K;
146  PROVIDE(_heap_end = heap.end);
147  /* reserve 64KByte for stack... */
148  stack.end = heap.end + 64K;
149  PROVIDE(_end = stack.end);
150
151  .line 0 : { *(.line) }
152  .debug 0 : { *(.debug) }
153  .debug_sfnames 0 : { *(.debug_sfnames) }
154  .debug_srcinfo 0 : { *(.debug_srcinfo) }
155  .debug_pubnames 0 : { *(.debug_pubnames) }
156  .debug_aranges 0 : { *(.debug_aranges) }
157  .debug_aregion 0 : { *(.debug_aregion) }
158  .debug_macinfo 0 : { *(.debug_macinfo) }
159  .stab 0 : { *(.stab) }
160  .stabstr 0 : { *(.stabstr) }
161
162}
Note: See TracBrowser for help on using the repository browser.