* scripttempl/armbpabi.sc: Replace DWARF sections with an
[deliverable/binutils-gdb.git] / ld / scripttempl / v850.sc
1 cat << EOF
2 OUTPUT_FORMAT("elf32-v850", "elf32-v850",
3 "elf32-v850")
4 OUTPUT_ARCH(v850)
5 ${RELOCATING+ENTRY(_start)}
6 SEARCH_DIR(.);
7 EXTERN(__ctbp __ep __gp);
8 SECTIONS
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 ${RELOCATING+PROVIDE (_heap_start = .);}
184
185 /* Stabs debugging sections. */
186 .stab 0 : { *(.stab) }
187 .stabstr 0 : { *(.stabstr) }
188 .stab.excl 0 : { *(.stab.excl) }
189 .stab.exclstr 0 : { *(.stab.exclstr) }
190 .stab.index 0 : { *(.stab.index) }
191 .stab.indexstr 0 : { *(.stab.indexstr) }
192 .comment 0 : { *(.comment) }
193
194 EOF
195
196 source $srcdir/scripttempl/DWARF.sc
197
198 cat <<EOF
199 /* User stack. */
200 .stack 0x200000 :
201 {
202 ${RELOCATING+__stack = .;}
203 *(.stack)
204 }
205 }
206 EOF
This page took 0.042139 seconds and 5 git commands to generate.