source: trunk/binutils/ld/scripttempl/v850.sc@ 3232

Last change on this file since 3232 was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 5.7 KB
Line 
1cat << EOF
2OUTPUT_FORMAT("elf32-v850", "elf32-v850",
3 "elf32-v850")
4OUTPUT_ARCH(v850)
5ENTRY(_start)
6SEARCH_DIR(.);
7EXTERN(__ctbp __ep __gp);
8SECTIONS
9{
10 /* This saves a little space in the ELF file, since the zda starts
11 at a higher location that the ELF headers take up. */
12
13 .zdata ${ZDATA_START_ADDR} :
14 {
15 *(.zdata)
16 *(.zbss)
17 *(reszdata)
18 *(.zcommon)
19 }
20
21 /* This is the read only part of the zero data area.
22 Having it as a seperate section prevents its
23 attributes from being inherited by the zdata
24 section. Specifically it prevents the zdata
25 section from being marked READONLY. */
26
27 .rozdata ${ROZDATA_START_ADDR} :
28 {
29 *(.rozdata)
30 *(romzdata)
31 *(romzbss)
32 }
33
34 /* Read-only sections, merged into text segment. */
35 . = ${TEXT_START_ADDR};
36 .interp : { *(.interp) }
37 .hash : { *(.hash) }
38 .dynsym : { *(.dynsym) }
39 .dynstr : { *(.dynstr) }
40 .rel.text : { *(.rel.text) }
41 .rela.text : { *(.rela.text) }
42 .rel.data : { *(.rel.data) }
43 .rela.data : { *(.rela.data) }
44 .rel.rodata : { *(.rel.rodata) }
45 .rela.rodata : { *(.rela.rodata) }
46 .rel.gcc_except_table : { *(.rel.gcc_except_table) }
47 .rela.gcc_except_table : { *(.rela.gcc_except_table) }
48 .rel.got : { *(.rel.got) }
49 .rela.got : { *(.rela.got) }
50 .rel.ctors : { *(.rel.ctors) }
51 .rela.ctors : { *(.rela.ctors) }
52 .rel.dtors : { *(.rel.dtors) }
53 .rela.dtors : { *(.rela.dtors) }
54 .rel.init : { *(.rel.init) }
55 .rela.init : { *(.rela.init) }
56 .rel.fini : { *(.rel.fini) }
57 .rela.fini : { *(.rela.fini) }
58 .rel.bss : { *(.rel.bss) }
59 .rela.bss : { *(.rela.bss) }
60 .rel.plt : { *(.rel.plt) }
61 .rela.plt : { *(.rela.plt) }
62 .init : { KEEP (*(.init)) } =0
63 .plt : { *(.plt) }
64
65 .text :
66 {
67 *(.text)
68 ${RELOCATING+*(.text.*)}
69
70 /* .gnu.warning sections are handled specially by elf32.em. */
71 *(.gnu.warning)
72 *(.gnu.linkonce.t*)
73 } =0
74
75 ${RELOCATING+_etext = .;}
76 ${RELOCATING+PROVIDE (etext = .);}
77
78 /* This is special code area at the end of the normal text section.
79 It contains a small lookup table at the start followed by the
80 code pointed to by entries in the lookup table. */
81
82 .call_table_data ${CALL_TABLE_START_ADDR} :
83 {
84 ${RELOCATING+PROVIDE(__ctbp = .);}
85 *(.call_table_data)
86 } = 0xff /* Fill gaps with 0xff. */
87
88 .call_table_text :
89 {
90 *(.call_table_text)
91 }
92
93 .fini : { KEEP (*(.fini)) } =0
94 .rodata : { *(.rodata) ${RELOCATING+*(.rodata.*)} *(.gnu.linkonce.r*) }
95 .rodata1 : { *(.rodata1) }
96
97 .data :
98 {
99 *(.data)
100 ${RELOCATING+*(.data.*)}
101 *(.gnu.linkonce.d*)
102 CONSTRUCTORS
103 }
104 .data1 : { *(.data1) }
105 .ctors :
106 {
107 ${CONSTRUCTING+___ctors = .;}
108 KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
109 KEEP (*(SORT(.ctors.*)))
110 KEEP (*crtend(.ctors))
111 ${CONSTRUCTING+___ctors_end = .;}
112 }
113 .dtors :
114 {
115 ${CONSTRUCTING+___dtors = .;}
116 KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
117 KEEP (*(SORT(.dtors.*)))
118 KEEP (*crtend.o(.dtors))
119 ${CONSTRUCTING+___dtors_end = .;}
120 }
121 .jcr :
122 {
123 KEEP (*(.jcr))
124 }
125
126 .gcc_except_table : { *(.gcc_except_table) }
127
128 .got : { *(.got.plt) *(.got) }
129 .dynamic : { *(.dynamic) }
130
131 .tdata ${TDATA_START_ADDR} :
132 {
133 ${RELOCATING+PROVIDE (__ep = .);}
134 *(.tbyte)
135 *(.tcommon_byte)
136 *(.tdata)
137 *(.tbss)
138 *(.tcommon)
139 }
140
141 /* We want the small data sections together, so single-instruction offsets
142 can access them all, and initialized data all before uninitialized, so
143 we can shorten the on-disk segment size. */
144
145 .sdata ${SDATA_START_ADDR} :
146 {
147 ${RELOCATING+PROVIDE (__gp = . + 0x8000);}
148 *(.sdata)
149 }
150
151 /* See comment about .rozdata. */
152 .rosdata ${ROSDATA_START_ADDR} :
153 {
154 *(.rosdata)
155 }
156
157 /* We place the .sbss data section AFTER the .rosdata section, so that
158 it can directly preceed the .bss section. This allows runtime startup
159 code to initialise all the zero-data sections by simply taking the
160 value of '_edata' and zeroing until it reaches '_end'. */
161
162 .sbss :
163 {
164 ${RELOCATING+__sbss_start = .;}
165 *(.sbss)
166 *(.scommon)
167 }
168
169 ${RELOCATING+_edata = DEFINED (__sbss_start) ? __sbss_start : . ;}
170 ${RELOCATING+PROVIDE (edata = _edata);}
171
172 .bss :
173 {
174 ${RELOCATING+__bss_start = DEFINED (__sbss_start) ? __sbss_start : . ;}
175 ${RELOCATING+__real_bss_start = . ;}
176 *(.dynbss)
177 *(.bss)
178 *(COMMON)
179 }
180
181 ${RELOCATING+_end = . ;}
182 ${RELOCATING+PROVIDE (end = .);}
183
184 /* Stabs debugging sections. */
185 .stab 0 : { *(.stab) }
186 .stabstr 0 : { *(.stabstr) }
187 .stab.excl 0 : { *(.stab.excl) }
188 .stab.exclstr 0 : { *(.stab.exclstr) }
189 .stab.index 0 : { *(.stab.index) }
190 .stab.indexstr 0 : { *(.stab.indexstr) }
191 .comment 0 : { *(.comment) }
192
193 /* DWARF debug sections.
194 Symbols in the DWARF debugging sections are relative to the beginning
195 of the section so we begin them at 0. */
196
197 /* DWARF 1 */
198 .debug 0 : { *(.debug) }
199 .line 0 : { *(.line) }
200
201 /* GNU DWARF 1 extensions */
202 .debug_srcinfo 0 : { *(.debug_srcinfo) }
203 .debug_sfnames 0 : { *(.debug_sfnames) }
204
205 /* DWARF 1.1 and DWARF 2 */
206 .debug_aranges 0 : { *(.debug_aranges) }
207 .debug_pubnames 0 : { *(.debug_pubnames) }
208
209 /* DWARF 2 */
210 .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
211 .debug_abbrev 0 : { *(.debug_abbrev) }
212 .debug_line 0 : { *(.debug_line) }
213 .debug_frame 0 : { *(.debug_frame) }
214 .debug_str 0 : { *(.debug_str) }
215 .debug_loc 0 : { *(.debug_loc) }
216 .debug_macinfo 0 : { *(.debug_macinfo) }
217
218 /* SGI/MIPS DWARF 2 extensions. */
219 .debug_weaknames 0 : { *(.debug_weaknames) }
220 .debug_funcnames 0 : { *(.debug_funcnames) }
221 .debug_typenames 0 : { *(.debug_typenames) }
222 .debug_varnames 0 : { *(.debug_varnames) }
223
224 /* User stack. */
225 .stack 0x200000 :
226 {
227 ${RELOCATING+__stack = .;}
228 *(.stack)
229 }
230}
231EOF
Note: See TracBrowser for help on using the repository browser.