source: rtems/c/src/lib/libbsp/sh/simsh4/startup/linkcmds-le @ 296cc30e

4.104.114.84.95
Last change on this file since 296cc30e was 296cc30e, checked in by Joel Sherrill <joel.sherrill@…>, on Jan 20, 2003 at 8:10:42 PM

2003-01-20 Joel Sherrill <joel@…>

  • startup/linkcmds-le, startup/linkcmds-le.coff: Add FreeBSD sysctl() sections.
  • Property mode set to 100644
File size: 6.7 KB
Line 
1/*
2FIXME: Why is a special linkcmds required for little endian?
3  OUTPUT_FORMAT("elf32-shl", "elf32-shl",
4              "elf32-shl")
5 */
6OUTPUT_ARCH(sh)
7ENTRY(_start)
8/* Do we need any of these for elf?
9   __DYNAMIC = 0;    */
10
11_HeapSize = DEFINED(_HeapSize) ? _HeapSize : (512 * 1024);
12_WorkspaceSize = DEFINED(_WorkspaceSize) ? _WorkspaceSize : (1024 * 1024);
13
14MEMORY
15{
16  ram           : o = 0x00000000, l = 0x01000000
17}
18
19SECTIONS
20{
21  /* Read-only sections, merged into text segment: */
22  /*  . = 0x1000; */
23  . = 0x00004000 ;
24  .interp     : { *(.interp)    }
25  .hash          : { *(.hash)           }
26  .dynsym        : { *(.dynsym)         }
27  .dynstr        : { *(.dynstr)         }
28  .gnu.version   : { *(.gnu.version)    }
29  .gnu.version_d   : { *(.gnu.version_d)        }
30  .gnu.version_r   : { *(.gnu.version_r)        }
31  .rel.init      : { *(.rel.init)       }
32  .rela.init     : { *(.rela.init)      }
33  .rel.text      :
34    {
35      *(.rel.text)
36      *(.rel.text.*)
37      *(.rel.gnu.linkonce.t*)
38    }
39  .rela.text     :
40    {
41      *(.rela.text)
42      *(.rela.text.*)
43      *(.rela.gnu.linkonce.t*)
44    }
45  .rel.fini      : { *(.rel.fini)       }
46  .rela.fini     : { *(.rela.fini)      }
47  .rel.rodata    :
48    {
49      *(.rel.rodata)
50      *(.rel.rodata.*)
51      *(.rel.gnu.linkonce.r*)
52    } 
53  .rela.rodata   :
54    {
55      *(.rela.rodata)
56      *(.rela.rodata.*)
57      *(.rela.gnu.linkonce.r*)
58    }
59  .rel.data      :
60    {
61      *(.rel.data)
62      *(.rel.data.*)
63      *(.rel.gnu.linkonce.d*)
64    }
65  .rela.data     :
66    {
67      *(.rela.data)
68      *(.rela.data.*)
69      *(.rela.gnu.linkonce.d*)
70    }
71  .rel.ctors     : { *(.rel.ctors)      }
72  .rela.ctors    : { *(.rela.ctors)     }
73  .rel.dtors     : { *(.rel.dtors)      }
74  .rela.dtors    : { *(.rela.dtors)     }
75  .rel.got       : { *(.rel.got)                }
76  .rela.got      : { *(.rela.got)               }
77  .rel.sdata     :
78    {
79      *(.rel.sdata)
80      *(.rel.sdata.*)
81      *(.rel.gnu.linkonce.s*)
82    }
83  .rela.sdata     :
84    {
85      *(.rela.sdata)
86      *(.rela.sdata.*)
87      *(.rela.gnu.linkonce.s*)
88    }
89  .rel.sbss      : { *(.rel.sbss)               }
90  .rela.sbss     : { *(.rela.sbss)      }
91  .rel.bss       : { *(.rel.bss)                }
92  .rela.bss      : { *(.rela.bss)               }
93  .rel.plt       : { *(.rel.plt)                }
94  .rela.plt      : { *(.rela.plt)               }
95  .init          :
96  {
97    KEEP (*(.init))
98  } =0
99  .plt      : { *(.plt) }
100  .text      :
101  {
102    . = . + 16;
103    *(.text)
104    *(.text.*)
105    *(.stub)
106
107    /*
108     * Special FreeBSD sysctl sections.
109     */
110    . = ALIGN (16);
111    __start_set_sysctl_set = .;
112    *(set_sysctl_*);
113    __stop_set_sysctl_set = ABSOLUTE(.);
114    *(set_domain_*);
115    *(set_pseudo_*);
116
117    /* .gnu.warning sections are handled specially by elf32.em.  */
118    *(.gnu.warning)
119    *(.gnu.linkonce.t*)
120  } > ram
121  _etext = .;
122  PROVIDE (etext = .);
123  .fini      :
124  {
125    KEEP (*(.fini))
126  } > ram
127  .rodata   : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) } > ram
128  .rodata1   : { *(.rodata1) } > ram
129  /* Adjust the address for the data segment.  We want to adjust up to
130     the same address within the page on the next page up.  */
131  . = ALIGN(128) + (. & (128 - 1));
132  .data    :
133  {
134    *(.data)
135    *(.data.*)
136    *(.gnu.linkonce.d*)
137    SORT(CONSTRUCTORS)
138  } > ram
139  .data1   : { *(.data1) } > ram
140  .eh_frame : { *(.eh_frame) } > ram
141  .gcc_except_table : { *(.gcc_except_table) } > ram
142  .ctors   :
143  {
144    ___ctors = .;
145    /* gcc uses crtbegin.o to find the start of
146       the constructors, so we make sure it is
147       first.  Because this is a wildcard, it
148       doesn't matter if the user does not
149       actually link against crtbegin.o; the
150       linker won't look for a file to match a
151       wildcard.  The wildcard also means that it
152       doesn't matter which directory crtbegin.o
153       is in.  */
154    KEEP (*crtbegin.o(.ctors))
155    /* We don't want to include the .ctor section from
156       from the crtend.o file until after the sorted ctors.
157       The .ctor section from the crtend file contains the
158       end of ctors marker and it must be last */
159    KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
160    KEEP (*(SORT(.ctors.*)))
161    KEEP (*(.ctors))
162    ___ctors_end = .;
163  } > ram
164   .dtors         :
165  {
166    ___dtors = .;
167    KEEP (*crtbegin.o(.dtors))
168    KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
169    KEEP (*(SORT(.dtors.*)))
170    KEEP (*(.dtors))
171    ___dtors_end = .;
172  } > ram
173  .got           : { *(.got.plt) *(.got) }
174  .dynamic       : { *(.dynamic) }
175  /* We want the small data sections together, so single-instruction offsets
176     can access them all, and initialized data all before uninitialized, so
177     we can shorten the on-disk segment size.  */
178  .sdata     :
179  {
180    *(.sdata)
181    *(.sdata.*)
182    *(.gnu.linkonce.s.*)
183  } > ram
184  _edata = .;
185  PROVIDE (edata = .);
186  __bss_start = .;
187  .sbss      :
188  {
189    *(.dynsbss)
190    *(.sbss)
191    *(.sbss.*)
192    *(.scommon)
193  } > ram
194  .bss       :
195  {
196   *(.dynbss)
197   *(.bss)
198   *(.bss.*)
199   *(COMMON)
200   /* Align here to ensure that the .bss section occupies space up to
201      _end.  Align after .bss to ensure correct alignment even if the
202      .bss section disappears because there are no input sections.  */
203   . = ALIGN(32 / 8);
204  } > ram
205  . = ALIGN(32 / 8);
206  _end = .;
207  PROVIDE (end = .);
208
209  . = ALIGN(16);
210  _HeapStart = . ;
211  . = . + _HeapSize ;
212  PROVIDE( _HeapEnd = . );
213
214  . = ALIGN(16);
215  _WorkSpaceStart = . ;
216  . = . + _WorkspaceSize ;
217  PROVIDE(_WorkSpaceEnd = .);
218
219  . = ALIGN(16);
220  .stack . : {
221     . = . + 4096;
222  }
223
224  . = ALIGN(16);
225  _CPU_Interrupt_stack_low  = . ;
226  _CPU_Interrupt_stack_high = _CPU_Interrupt_stack_low + 4096 ;
227
228  /* Stabs debugging sections.  */
229  .stab 0 : { *(.stab) }
230  .stabstr 0 : { *(.stabstr) }
231  .stab.excl 0 : { *(.stab.excl) }
232  .stab.exclstr 0 : { *(.stab.exclstr) }
233  .stab.index 0 : { *(.stab.index) }
234  .stab.indexstr 0 : { *(.stab.indexstr) }
235  .comment 0 : { *(.comment) }
236  /* DWARF debug sections.
237     Symbols in the DWARF debugging sections are relative to the beginning
238     of the section so we begin them at 0.  */
239  /* DWARF 1 */
240  .debug          0 : { *(.debug) }
241  .line           0 : { *(.line) }
242  /* GNU DWARF 1 extensions */
243  .debug_srcinfo  0 : { *(.debug_srcinfo) }
244  .debug_sfnames  0 : { *(.debug_sfnames) }
245  /* DWARF 1.1 and DWARF 2 */
246  .debug_aranges  0 : { *(.debug_aranges) }
247  .debug_pubnames 0 : { *(.debug_pubnames) }
248  /* DWARF 2 */
249  .debug_info     0 : { *(.debug_info) }
250  .debug_abbrev   0 : { *(.debug_abbrev) }
251  .debug_line     0 : { *(.debug_line) }
252  .debug_frame    0 : { *(.debug_frame) }
253  .debug_str      0 : { *(.debug_str) }
254  .debug_loc      0 : { *(.debug_loc) }
255  .debug_macinfo  0 : { *(.debug_macinfo) }
256  /* SGI/MIPS DWARF 2 extensions */
257  .debug_weaknames 0 : { *(.debug_weaknames) }
258  .debug_funcnames 0 : { *(.debug_funcnames) }
259  .debug_typenames 0 : { *(.debug_typenames) }
260  .debug_varnames  0 : { *(.debug_varnames) }
261  .stack 0x30000 : { _stack = .; *(.stack) }
262  /* These must appear regardless of  .  */
263}
Note: See TracBrowser for help on using the repository browser.