OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [sh/] [sh4_202_md/] [current/] [misc/] [sh4_202_md.ld] - Blame information for rev 853

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
/* Script for -z combreloc: combine and sort reloc sections */
2
OUTPUT_FORMAT("elf32-shl", "elf32-sh",
3
              "elf32-shl")
4
OUTPUT_ARCH(sh)
5
ENTRY(start)
6
SEARCH_DIR("/home/demonweb/tools/ecos-gnutools-v1.4/r2/sh-elf/x86_linux_lsb1_3/tar_bz2/opt/ecos/gnutools/sh-elf/sh-elf/lib");
7
/* Do we need any of these for elf?
8
   __DYNAMIC = 0;    */
9
SECTIONS
10
{
11
  /* Read-only sections, merged into text segment: */
12
  . = 0x88100000;
13
  .interp         : { *(.interp) }
14
  .hash           : { *(.hash) }
15
  .dynsym         : { *(.dynsym) }
16
  .dynstr         : { *(.dynstr) }
17
  .gnu.version    : { *(.gnu.version) }
18
  .gnu.version_d  : { *(.gnu.version_d) }
19
  .gnu.version_r  : { *(.gnu.version_r) }
20
  .rel.dyn        :
21
    {
22
      *(.rel.init)
23
      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
24
      *(.rel.fini)
25
      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
26
      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
27
      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
28
      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
29
      *(.rel.ctors)
30
      *(.rel.dtors)
31
      *(.rel.got)
32
      *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
33
      *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
34
      *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
35
      *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
36
      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
37
    }
38
  .rela.dyn       :
39
    {
40
      *(.rela.init)
41
      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
42
      *(.rela.fini)
43
      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
44
      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
45
      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
46
      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
47
      *(.rela.ctors)
48
      *(.rela.dtors)
49
      *(.rela.got)
50
      *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
51
      *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
52
      *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
53
      *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
54
      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
55
    }
56
  .rel.plt        : { *(.rel.plt) }
57
  .rela.plt       : { *(.rela.plt) }
58
  .init           :
59
  {
60
    KEEP (*(.init))
61
  } =0
62
  .plt            : { *(.plt) }
63
  .text           :
64
  {
65
    *(.text .stub .text.* .gnu.linkonce.t.*)
66
    /* .gnu.warning sections are handled specially by elf32.em.  */
67
    *(.gnu.warning)
68
  } =0
69
  .fini           :
70
  {
71
    KEEP (*(.fini))
72
  } =0
73
  PROVIDE (__etext = .);
74
  PROVIDE (_etext = .);
75
  PROVIDE (etext = .);
76
  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
77
  .rodata1        : { *(.rodata1) }
78
  .sdata2         : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
79
  .sbss2          : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
80
  .eh_frame_hdr : { *(.eh_frame_hdr) }
81
  /* Adjust the address for the data segment.  We want to adjust up to
82
     the same address within the page on the next page up.  */
83
  . = ALIGN(128) + (. & (128 - 1));
84
  /* Ensure the __preinit_array_start label is properly aligned.  We
85
     could instead move the label definition inside the section, but
86
     the linker would then create the section even if it turns out to
87
     be empty, which isn't pretty.  */
88
  . = ALIGN(32 / 8);
89
  PROVIDE (__preinit_array_start = .);
90
  .preinit_array     : { *(.preinit_array) }
91
  PROVIDE (__preinit_array_end = .);
92
  PROVIDE (__init_array_start = .);
93
  .init_array     : { *(.init_array) }
94
  PROVIDE (__init_array_end = .);
95
  PROVIDE (__fini_array_start = .);
96
  .fini_array     : { *(.fini_array) }
97
  PROVIDE (__fini_array_end = .);
98
  .data           :
99
  {
100
    *(.data .data.* .gnu.linkonce.d.*)
101
    SORT(CONSTRUCTORS)
102
  }
103
  .data1          : { *(.data1) }
104
  .tdata          : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
105
  .tbss           : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
106
  .eh_frame       : { KEEP (*(.eh_frame)) }
107
  .gcc_except_table   : { *(.gcc_except_table) }
108
  .dynamic        : { *(.dynamic) }
109
  .ctors          :
110
  {
111
    ___ctors = .;
112
    /* gcc uses crtbegin.o to find the start of
113
       the constructors, so we make sure it is
114
       first.  Because this is a wildcard, it
115
       doesn't matter if the user does not
116
       actually link against crtbegin.o; the
117
       linker won't look for a file to match a
118
       wildcard.  The wildcard also means that it
119
       doesn't matter which directory crtbegin.o
120
       is in.  */
121
    KEEP (*crtbegin.o(.ctors))
122
    /* We don't want to include the .ctor section from
123
       from the crtend.o file until after the sorted ctors.
124
       The .ctor section from the crtend file contains the
125
       end of ctors marker and it must be last */
126
    KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
127
    KEEP (*(SORT(.ctors.*)))
128
    KEEP (*(.ctors))
129
    ___ctors_end = .;
130
  }
131
  .dtors          :
132
  {
133
    ___dtors = .;
134
    KEEP (*crtbegin.o(.dtors))
135
    KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
136
    KEEP (*(SORT(.dtors.*)))
137
    KEEP (*(.dtors))
138
    ___dtors_end = .;
139
  }
140
  .jcr            : { KEEP (*(.jcr)) }
141
  .got            : { *(.got.plt) *(.got) }
142
  /* We want the small data sections together, so single-instruction offsets
143
     can access them all, and initialized data all before uninitialized, so
144
     we can shorten the on-disk segment size.  */
145
  .sdata          :
146
  {
147
    *(.sdata .sdata.* .gnu.linkonce.s.*)
148
  }
149
  _edata = .;
150
  PROVIDE (edata = .);
151
  __bss_start = .;
152
  .sbss           :
153
  {
154
    PROVIDE (__sbss_start = .);
155
    PROVIDE (___sbss_start = .);
156
    *(.dynsbss)
157
    *(.sbss .sbss.* .gnu.linkonce.sb.*)
158
    *(.scommon)
159
    PROVIDE (__sbss_end = .);
160
    PROVIDE (___sbss_end = .);
161
  }
162
  .bss            :
163
  {
164
   *(.dynbss)
165
   *(.bss .bss.* .gnu.linkonce.b.*)
166
   *(COMMON)
167
   /* Align here to ensure that the .bss section occupies space up to
168
      _end.  Align after .bss to ensure correct alignment even if the
169
      .bss section disappears because there are no input sections.  */
170
   . = ALIGN(32 / 8);
171
  }
172
  . = ALIGN(32 / 8);
173
  _end = .;
174
  PROVIDE (end = .);
175
  /* Stabs debugging sections.  */
176
  .stab          0 : { *(.stab) }
177
  .stabstr       0 : { *(.stabstr) }
178
  .stab.excl     0 : { *(.stab.excl) }
179
  .stab.exclstr  0 : { *(.stab.exclstr) }
180
  .stab.index    0 : { *(.stab.index) }
181
  .stab.indexstr 0 : { *(.stab.indexstr) }
182
  .comment       0 : { *(.comment) }
183
  /* DWARF debug sections.
184
     Symbols in the DWARF debugging sections are relative to the beginning
185
     of the section so we begin them at 0.  */
186
  /* DWARF 1 */
187
  .debug          0 : { *(.debug) }
188
  .line           0 : { *(.line) }
189
  /* GNU DWARF 1 extensions */
190
  .debug_srcinfo  0 : { *(.debug_srcinfo) }
191
  .debug_sfnames  0 : { *(.debug_sfnames) }
192
  /* DWARF 1.1 and DWARF 2 */
193
  .debug_aranges  0 : { *(.debug_aranges) }
194
  .debug_pubnames 0 : { *(.debug_pubnames) }
195
  /* DWARF 2 */
196
  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
197
  .debug_abbrev   0 : { *(.debug_abbrev) }
198
  .debug_line     0 : { *(.debug_line) }
199
  .debug_frame    0 : { *(.debug_frame) }
200
  .debug_str      0 : { *(.debug_str) }
201
  .debug_loc      0 : { *(.debug_loc) }
202
  .debug_macinfo  0 : { *(.debug_macinfo) }
203
  /* SGI/MIPS DWARF 2 extensions */
204
  .debug_weaknames 0 : { *(.debug_weaknames) }
205
  .debug_funcnames 0 : { *(.debug_funcnames) }
206
  .debug_typenames 0 : { *(.debug_typenames) }
207
  .debug_varnames  0 : { *(.debug_varnames) }
208
    .stack         (DEFINED(_stack) ? _stack : 0x88200000) :
209
  {
210
    _stack = .;
211
    *(.stack)
212
    LONG(0xdeaddead)
213
  }
214
}

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.