source: rtems/c/src/lib/libbsp/sh/simsh4/startup/linkcmds-le @ 21cc9a49

4.104.114.84.95
Last change on this file since 21cc9a49 was 70d7eaa9, checked in by Joel Sherrill <joel.sherrill@…>, on 10/15/01 at 18:07:19

2001-10-12 Ralf Corsepius <corsepiu@…>

  • configure.ac: Added support for START_HW_INIT.
  • console/Makefile.am: Removed VPATH.
  • include/Makefile.am: Added missing ramdisk.h to include_HEADERS.
  • startup/linkcmds: Do not force output format to coff-sh.
  • startup/linkcmds-le: Comment out force of output format and add comment questioning need to have special linkcmds for little endian.
  • wrapup/Makefile.am: Add ramdisk to list of BSP_PIECES.
  • Property mode set to 100644
File size: 6.5 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    /* .gnu.warning sections are handled specially by elf32.em.  */
107    *(.gnu.warning)
108    *(.gnu.linkonce.t*)
109  } > ram
110  _etext = .;
111  PROVIDE (etext = .);
112  .fini      :
113  {
114    KEEP (*(.fini))
115  } > ram
116  .rodata   : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) } > ram
117  .rodata1   : { *(.rodata1) } > ram
118  /* Adjust the address for the data segment.  We want to adjust up to
119     the same address within the page on the next page up.  */
120  . = ALIGN(128) + (. & (128 - 1));
121  .data    :
122  {
123    *(.data)
124    *(.data.*)
125    *(.gnu.linkonce.d*)
126    SORT(CONSTRUCTORS)
127  } > ram
128  .data1   : { *(.data1) } > ram
129  .eh_frame : { *(.eh_frame) } > ram
130  .gcc_except_table : { *(.gcc_except_table) } > ram
131  .ctors   :
132  {
133    ___ctors = .;
134    /* gcc uses crtbegin.o to find the start of
135       the constructors, so we make sure it is
136       first.  Because this is a wildcard, it
137       doesn't matter if the user does not
138       actually link against crtbegin.o; the
139       linker won't look for a file to match a
140       wildcard.  The wildcard also means that it
141       doesn't matter which directory crtbegin.o
142       is in.  */
143    KEEP (*crtbegin.o(.ctors))
144    /* We don't want to include the .ctor section from
145       from the crtend.o file until after the sorted ctors.
146       The .ctor section from the crtend file contains the
147       end of ctors marker and it must be last */
148    KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
149    KEEP (*(SORT(.ctors.*)))
150    KEEP (*(.ctors))
151    ___ctors_end = .;
152  } > ram
153   .dtors         :
154  {
155    ___dtors = .;
156    KEEP (*crtbegin.o(.dtors))
157    KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
158    KEEP (*(SORT(.dtors.*)))
159    KEEP (*(.dtors))
160    ___dtors_end = .;
161  } > ram
162  .got           : { *(.got.plt) *(.got) }
163  .dynamic       : { *(.dynamic) }
164  /* We want the small data sections together, so single-instruction offsets
165     can access them all, and initialized data all before uninitialized, so
166     we can shorten the on-disk segment size.  */
167  .sdata     :
168  {
169    *(.sdata)
170    *(.sdata.*)
171    *(.gnu.linkonce.s.*)
172  } > ram
173  _edata = .;
174  PROVIDE (edata = .);
175  __bss_start = .;
176  .sbss      :
177  {
178    *(.dynsbss)
179    *(.sbss)
180    *(.sbss.*)
181    *(.scommon)
182  } > ram
183  .bss       :
184  {
185   *(.dynbss)
186   *(.bss)
187   *(.bss.*)
188   *(COMMON)
189   /* Align here to ensure that the .bss section occupies space up to
190      _end.  Align after .bss to ensure correct alignment even if the
191      .bss section disappears because there are no input sections.  */
192   . = ALIGN(32 / 8);
193  } > ram
194  . = ALIGN(32 / 8);
195  _end = .;
196  PROVIDE (end = .);
197
198  . = ALIGN(16);
199  _HeapStart = . ;
200  . = . + _HeapSize ;
201  PROVIDE( _HeapEnd = . );
202
203  . = ALIGN(16);
204  _WorkSpaceStart = . ;
205  . = . + _WorkspaceSize ;
206  PROVIDE(_WorkSpaceEnd = .);
207
208  . = ALIGN(16);
209  .stack . : {
210     . = . + 4096;
211  }
212
213  . = ALIGN(16);
214  _CPU_Interrupt_stack_low  = . ;
215  _CPU_Interrupt_stack_high = _CPU_Interrupt_stack_low + 4096 ;
216
217  /* Stabs debugging sections.  */
218  .stab 0 : { *(.stab) }
219  .stabstr 0 : { *(.stabstr) }
220  .stab.excl 0 : { *(.stab.excl) }
221  .stab.exclstr 0 : { *(.stab.exclstr) }
222  .stab.index 0 : { *(.stab.index) }
223  .stab.indexstr 0 : { *(.stab.indexstr) }
224  .comment 0 : { *(.comment) }
225  /* DWARF debug sections.
226     Symbols in the DWARF debugging sections are relative to the beginning
227     of the section so we begin them at 0.  */
228  /* DWARF 1 */
229  .debug          0 : { *(.debug) }
230  .line           0 : { *(.line) }
231  /* GNU DWARF 1 extensions */
232  .debug_srcinfo  0 : { *(.debug_srcinfo) }
233  .debug_sfnames  0 : { *(.debug_sfnames) }
234  /* DWARF 1.1 and DWARF 2 */
235  .debug_aranges  0 : { *(.debug_aranges) }
236  .debug_pubnames 0 : { *(.debug_pubnames) }
237  /* DWARF 2 */
238  .debug_info     0 : { *(.debug_info) }
239  .debug_abbrev   0 : { *(.debug_abbrev) }
240  .debug_line     0 : { *(.debug_line) }
241  .debug_frame    0 : { *(.debug_frame) }
242  .debug_str      0 : { *(.debug_str) }
243  .debug_loc      0 : { *(.debug_loc) }
244  .debug_macinfo  0 : { *(.debug_macinfo) }
245  /* SGI/MIPS DWARF 2 extensions */
246  .debug_weaknames 0 : { *(.debug_weaknames) }
247  .debug_funcnames 0 : { *(.debug_funcnames) }
248  .debug_typenames 0 : { *(.debug_typenames) }
249  .debug_varnames  0 : { *(.debug_varnames) }
250  .stack 0x30000 : { _stack = .; *(.stack) }
251  /* These must appear regardless of  .  */
252}
Note: See TracBrowser for help on using the repository browser.