source: rtems/bsps/powerpc/shared/start/linkcmds.base @ 9eb9813

Last change on this file since 9eb9813 was 9eb9813, checked in by Sebastian Huber <sebastian.huber@…>, on 01/26/21 at 14:29:00

bsps: Add missing DWARF 5 sections

Sort alphabetically.

  • Property mode set to 100644
File size: 15.9 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup bsp_linker
5 *
6 * @brief Linker command base file.
7 */
8
9/*
10 * Copyright (c) 2011, 2016 embedded brains GmbH.  All rights reserved.
11 *
12 *  embedded brains GmbH
13 *  Dornierstr. 4
14 *  82178 Puchheim
15 *  Germany
16 *  <rtems@embedded-brains.de>
17 *
18 * The license and distribution terms for this file may be
19 * found in the file LICENSE in this distribution or at
20 * http://www.rtems.org/license/LICENSE.
21 */
22
23ENTRY (_start)
24STARTUP (start.o)
25
26/*
27 * The upper layer linker command file may optionally define the symbol
28 * bsp_section_small_data_area_size.  By default, the small data area is
29 * defined by the .sdata and .sbss input sections.  Define
30 * bsp_section_small_data_area_size, if you want to make space available for
31 * dynamically loaded libraries (libdl).  Small memory targets which do not use
32 * libdl, should not define this symbol.
33 */
34
35/*
36 * Global symbols that may be defined externally
37 */
38
39bsp_section_xbarrier_align = DEFINED (bsp_section_xbarrier_align) ? bsp_section_xbarrier_align : 1;
40bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
41bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
42
43MEMORY {
44        UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
45}
46
47SECTIONS {
48        .start : ALIGN_WITH_INPUT {
49                bsp_section_start_begin = .;
50                KEEP (*(.bsp_start_text))
51                KEEP (*(.bsp_start_data))
52                bsp_section_start_end = .;
53        } > REGION_START AT > REGION_START
54        bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
55
56        .xbarrier : ALIGN_WITH_INPUT {
57                . = ALIGN (bsp_section_xbarrier_align);
58        } > REGION_TEXT AT > REGION_TEXT
59
60        .text : ALIGN_WITH_INPUT {
61                bsp_section_text_begin = .;
62                *(SORT(.bsp_text*))
63                *(.text.unlikely .text.*_unlikely)
64                *(.text .stub .text.* .gnu.linkonce.t.*)
65                *(.gnu.warning)
66                *(.sfpr .glink)
67        } > REGION_TEXT AT > REGION_TEXT_LOAD
68        .init : ALIGN_WITH_INPUT {
69                KEEP (*(.init))
70        } > REGION_TEXT AT > REGION_TEXT_LOAD
71        .fini : ALIGN_WITH_INPUT {
72                PROVIDE (_fini = .);
73                KEEP (*(.fini))
74                bsp_section_text_end = .;
75        } > REGION_TEXT AT > REGION_TEXT_LOAD
76        bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
77        bsp_section_text_load_begin = LOADADDR (.text);
78        bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
79
80        .fast_text : ALIGN_WITH_INPUT {
81                bsp_section_fast_text_begin = .;
82                *(.bsp_fast_text)
83                bsp_section_fast_text_end = .;
84        } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
85        bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
86        bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
87        bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
88
89        .robarrier : ALIGN_WITH_INPUT {
90                . = ALIGN (bsp_section_robarrier_align);
91        } > REGION_RODATA AT > REGION_RODATA
92
93        .rodata : ALIGN_WITH_INPUT {
94                bsp_section_rodata_begin = .;
95                *(SORT(.bsp_rodata*))
96                *(.rodata .rodata.* .gnu.linkonce.r.*)
97        } > REGION_RODATA AT > REGION_RODATA_LOAD
98        .rodata1 : ALIGN_WITH_INPUT {
99                *(.rodata1)
100        } > REGION_RODATA AT > REGION_RODATA_LOAD
101        .sdata2 : ALIGN_WITH_INPUT {
102                PROVIDE (_SDA2_BASE_ = 32768);
103                *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
104        } > REGION_RODATA AT > REGION_RODATA_LOAD
105        .sbss2 : ALIGN_WITH_INPUT {
106                *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
107        } > REGION_RODATA AT > REGION_RODATA_LOAD
108        .eh_frame_hdr : ALIGN_WITH_INPUT {
109                *(.eh_frame_hdr)
110        } > REGION_RODATA AT > REGION_RODATA_LOAD
111        .eh_frame : ALIGN_WITH_INPUT {
112                KEEP (*(.eh_frame))
113        } > REGION_RODATA AT > REGION_RODATA_LOAD
114        .gcc_except_table : ALIGN_WITH_INPUT {
115                *(.gcc_except_table .gcc_except_table.*)
116        } > REGION_RODATA AT > REGION_RODATA_LOAD
117        .tdata : ALIGN_WITH_INPUT {
118                _TLS_Data_begin = .;
119                *(.tdata .tdata.* .gnu.linkonce.td.*)
120                _TLS_Data_end = .;
121        } > REGION_RODATA AT > REGION_RODATA_LOAD
122        .tbss : ALIGN_WITH_INPUT {
123                _TLS_BSS_begin = .;
124                *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
125                _TLS_BSS_end = .;
126        } > REGION_RODATA AT > REGION_RODATA_LOAD
127        _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
128        _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
129        _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
130        _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
131        _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
132        _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
133        .preinit_array : ALIGN_WITH_INPUT {
134                PROVIDE_HIDDEN (__preinit_array_start = .);
135                KEEP (*(.preinit_array))
136                PROVIDE_HIDDEN (__preinit_array_end = .);
137        } > REGION_RODATA AT > REGION_RODATA_LOAD
138        .init_array : ALIGN_WITH_INPUT {
139                PROVIDE_HIDDEN (__init_array_start = .);
140                KEEP (*(SORT(.init_array.*)))
141                KEEP (*(.init_array))
142                PROVIDE_HIDDEN (__init_array_end = .);
143        } > REGION_RODATA AT > REGION_RODATA_LOAD
144        .fini_array : ALIGN_WITH_INPUT {
145                PROVIDE_HIDDEN (__fini_array_start = .);
146                KEEP (*(SORT(.fini_array.*)))
147                KEEP (*(.fini_array))
148                PROVIDE_HIDDEN (__fini_array_end = .);
149        } > REGION_RODATA AT > REGION_RODATA_LOAD
150        .ctors : ALIGN_WITH_INPUT {
151                KEEP (*ecrti.o(.ctors))
152                KEEP (*crtbegin.o(.ctors))
153                KEEP (*crtbegin?.o(.ctors))
154                KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
155                KEEP (*(SORT(.ctors.*)))
156                KEEP (*(.ctors))
157        } > REGION_RODATA AT > REGION_RODATA_LOAD
158        .dtors : ALIGN_WITH_INPUT {
159                KEEP (*ecrti.o(.dtors))
160                KEEP (*crtbegin.o(.dtors))
161                KEEP (*crtbegin?.o(.dtors))
162                KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
163                KEEP (*(SORT(.dtors.*)))
164                KEEP (*(.dtors))
165        } > REGION_RODATA AT > REGION_RODATA_LOAD
166        .jcr : ALIGN_WITH_INPUT {
167                KEEP (*(.jcr))
168        } > REGION_RODATA AT > REGION_RODATA_LOAD
169        .data.rel.ro : ALIGN_WITH_INPUT {
170                *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
171        } > REGION_RODATA AT > REGION_RODATA_LOAD
172        .fixup : ALIGN_WITH_INPUT {
173                *(.fixup)
174        } > REGION_RODATA AT > REGION_RODATA_LOAD
175        .dynamic : ALIGN_WITH_INPUT {
176                *(.dynamic)
177        } > REGION_RODATA AT > REGION_RODATA_LOAD
178        .opd : ALIGN_WITH_INPUT {
179                KEEP (*(.opd))
180        } > REGION_RODATA AT > REGION_RODATA_LOAD
181        .tm_clone_table : ALIGN_WITH_INPUT {
182                *(.tm_clone_table)
183        } > REGION_RODATA AT > REGION_RODATA_LOAD
184        .toc1 : ALIGN_WITH_INPUT {
185                *(.toc1)
186        } > REGION_RODATA AT > REGION_RODATA_LOAD
187        .branch_lt : ALIGN_WITH_INPUT {
188                *(.branch_lt)
189        } > REGION_RODATA AT > REGION_RODATA_LOAD
190        .got1 : ALIGN_WITH_INPUT {
191                *(.got1)
192        } > REGION_RODATA AT > REGION_RODATA_LOAD
193        .got2 : ALIGN_WITH_INPUT {
194                *(.got2)
195        } > REGION_RODATA AT > REGION_RODATA_LOAD
196        .got : ALIGN_WITH_INPUT {
197                *(.got)
198        } > REGION_RODATA AT > REGION_RODATA_LOAD
199        .toc : ALIGN_WITH_INPUT {
200                *(.toc)
201        } > REGION_RODATA AT > REGION_RODATA_LOAD
202        .plt : ALIGN_WITH_INPUT {
203                *(.plt)
204        } > REGION_RODATA AT > REGION_RODATA_LOAD
205        .iplt : ALIGN_WITH_INPUT {
206                *(.iplt)
207        } > REGION_RODATA AT > REGION_RODATA_LOAD
208        .interp : ALIGN_WITH_INPUT {
209                *(.interp)
210        } > REGION_RODATA AT > REGION_RODATA_LOAD
211        .note.gnu.build-id : ALIGN_WITH_INPUT {
212                *(.note.gnu.build-id)
213        } > REGION_RODATA AT > REGION_RODATA_LOAD
214        .hash : ALIGN_WITH_INPUT {
215                *(.hash)
216        } > REGION_RODATA AT > REGION_RODATA_LOAD
217        .gnu.hash : ALIGN_WITH_INPUT {
218                *(.gnu.hash)
219        } > REGION_RODATA AT > REGION_RODATA_LOAD
220        .dynsym : ALIGN_WITH_INPUT {
221                *(.dynsym)
222        } > REGION_RODATA AT > REGION_RODATA_LOAD
223        .dynstr : ALIGN_WITH_INPUT {
224                *(.dynstr)
225        } > REGION_RODATA AT > REGION_RODATA_LOAD
226        .gnu.version : ALIGN_WITH_INPUT {
227                *(.gnu.version)
228        } > REGION_RODATA AT > REGION_RODATA_LOAD
229        .gnu.version_d : ALIGN_WITH_INPUT {
230                *(.gnu.version_d)
231        } > REGION_RODATA AT > REGION_RODATA_LOAD
232        .gnu.version_r : ALIGN_WITH_INPUT {
233                *(.gnu.version_r)
234        } > REGION_RODATA AT > REGION_RODATA_LOAD
235        .rela.dyn : ALIGN_WITH_INPUT {
236                *(.rela.init)
237                *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
238                *(.rela.fini)
239                *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
240                *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
241                *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
242                *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
243                *(.rela.ctors)
244                *(.rela.dtors)
245                *(.rela.got)
246                *(.rela.got1)
247                *(.rela.got2)
248                *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
249                *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
250                *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
251                *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
252                *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
253                *(.rela.rtemsroset*)
254                *(.rela.rtemsrwset*)
255                PROVIDE_HIDDEN (__rel_iplt_start = .);
256                PROVIDE_HIDDEN (__rel_iplt_end = .);
257                PROVIDE_HIDDEN (__rela_iplt_start = .);
258                *(.rela.iplt)
259                PROVIDE_HIDDEN (__rela_iplt_end = .);
260        } > REGION_RODATA AT > REGION_RODATA_LOAD
261        .rela.plt : ALIGN_WITH_INPUT {
262                *(.rela.plt)
263        } > REGION_RODATA AT > REGION_RODATA_LOAD
264        .rtemsroset : ALIGN_WITH_INPUT {
265                /* Special FreeBSD linker set sections */
266                __start_set_sysctl_set = .;
267                *(set_sysctl_*);
268                __stop_set_sysctl_set = .;
269                *(set_domain_*);
270                *(set_pseudo_*);
271
272                KEEP (*(SORT(.rtemsroset.*)))
273                bsp_section_rodata_end = .;
274        } > REGION_RODATA AT > REGION_RODATA_LOAD
275        bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
276        bsp_section_rodata_load_begin = LOADADDR (.rodata);
277        bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
278
279        .rwbarrier : ALIGN_WITH_INPUT {
280                . = ALIGN (bsp_section_rwbarrier_align);
281        } > REGION_DATA AT > REGION_DATA
282
283        .fast_data : ALIGN_WITH_INPUT {
284                bsp_section_fast_data_begin = .;
285                *(SORT(.bsp_fast_data*))
286                bsp_section_fast_data_end = .;
287        } > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
288        bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
289        bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
290        bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
291
292        .data : ALIGN_WITH_INPUT {
293                bsp_section_data_begin = .;
294                *(SORT(.bsp_data*))
295                *(.data .data.* .gnu.linkonce.d.*)
296                SORT(CONSTRUCTORS)
297        } > REGION_DATA AT > REGION_DATA_LOAD
298        .data1 : ALIGN_WITH_INPUT {
299                *(.data1)
300        } > REGION_DATA AT > REGION_DATA_LOAD
301        .rtemsrwset : ALIGN_WITH_INPUT {
302                KEEP (*(SORT(.rtemsrwset.*)))
303        } > REGION_DATA AT > REGION_DATA_LOAD
304        .sdata : ALIGN_WITH_INPUT {
305                bsp_section_sdata_begin = .;
306                PROVIDE (_SDA_BASE_ = 32768);
307                *(.sdata .sdata.* .gnu.linkonce.s.*)
308                bsp_section_sdata_end = .;
309                bsp_section_data_end = .;
310        } > REGION_DATA AT > REGION_DATA_LOAD
311        bsp_section_sdata_size = bsp_section_sdata_end - bsp_section_sdata_begin;
312        bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
313        bsp_section_data_load_begin = LOADADDR (.data);
314        bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
315
316        .sbss : ALIGN_WITH_INPUT {
317                bsp_section_sbss_begin = .;
318                *(.dynsbss)
319                *(.sbss .sbss.* .gnu.linkonce.sb.*)
320                *(.scommon)
321                bsp_section_sbss_end = .;
322                bsp_section_sdata_libdl_begin = .;
323                . = DEFINED(bsp_section_small_data_area_size) ?
324                        bsp_section_sdata_begin + bsp_section_small_data_area_size : .;
325                bsp_section_sdata_libdl_end = .;
326        } > REGION_DATA AT > REGION_DATA
327        bsp_section_sbss_size = bsp_section_sbss_end - bsp_section_sbss_begin;
328        bsp_section_sdata_libdl_size = bsp_section_sdata_libdl_end - bsp_section_sdata_libdl_begin;
329
330        .bss : ALIGN_WITH_INPUT {
331                bsp_section_bss_begin = .;
332                *(.dynbss)
333                *(.bss .bss.* .gnu.linkonce.b.*)
334                *(COMMON)
335                bsp_section_bss_end = .;
336        } > REGION_BSS AT > REGION_BSS
337        bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
338
339        .rtemsstack (NOLOAD) : ALIGN_WITH_INPUT {
340                bsp_section_rtemsstack_begin = .;
341                *(SORT(.rtemsstack.*))
342                bsp_section_rtemsstack_end = .;
343        } > REGION_RTEMSSTACK AT > REGION_RTEMSSTACK
344        bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;
345
346        .work : ALIGN_WITH_INPUT {
347                /*
348                 * The work section will occupy the remaining REGION_WORK region and
349                 * contains the RTEMS work space and heap.
350                 */
351                bsp_section_work_begin = .;
352                . += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
353                bsp_section_work_end = .;
354        } > REGION_WORK AT > REGION_WORK
355        bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
356
357        .stack : ALIGN_WITH_INPUT {
358                /*
359                 * The stack section will occupy the remaining REGION_STACK region and may
360                 * contain the task stacks.  Depending on the region distribution this
361                 * section may be of zero size.
362                 */
363                bsp_section_stack_begin = .;
364                . += ORIGIN (REGION_STACK) + LENGTH (REGION_STACK) - ABSOLUTE (.);
365                bsp_section_stack_end = .;
366        } > REGION_STACK AT > REGION_STACK
367        bsp_section_stack_size = bsp_section_stack_end - bsp_section_stack_begin;
368
369        .nocache : ALIGN_WITH_INPUT {
370                bsp_section_nocache_begin = .;
371                *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_nocache*)))
372                bsp_section_nocache_end = .;
373        } > REGION_NOCACHE AT > REGION_NOCACHE_LOAD
374        bsp_section_nocache_size = bsp_section_nocache_end - bsp_section_nocache_begin;
375        bsp_section_nocache_load_begin = LOADADDR (.nocache);
376        bsp_section_nocache_load_end = bsp_section_nocache_load_begin + bsp_section_nocache_size;
377
378        .nocachenoload (NOLOAD) : ALIGN_WITH_INPUT {
379                bsp_section_nocachenoload_begin = .;
380                *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_noload_nocache*)))
381                bsp_section_nocacheheap_begin = .;
382                . += ORIGIN (REGION_NOCACHE) + LENGTH (REGION_NOCACHE) - ABSOLUTE (.);
383                bsp_section_nocacheheap_end = .;
384                bsp_section_nocachenoload_end = .;
385        } > REGION_NOCACHE AT > REGION_NOCACHE
386        bsp_section_nocacheheap_size = bsp_section_nocacheheap_end - bsp_section_nocacheheap_begin;
387        bsp_section_nocachenoload_size = bsp_section_nocachenoload_end - bsp_section_nocachenoload_begin;
388
389        .nvram (NOLOAD) : ALIGN_WITH_INPUT {
390                bsp_section_nvram_begin = .;
391                *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_nvram*)))
392                bsp_section_nvram_end = .;
393        } > REGION_NVRAM AT > REGION_NVRAM
394        bsp_section_nvram_size = bsp_section_nvram_end - bsp_section_nvram_begin;
395
396        /* FIXME */
397        RamBase = ORIGIN (REGION_WORK);
398        RamSize = LENGTH (REGION_WORK);
399        RamEnd = RamBase + RamSize;
400        WorkAreaBase = bsp_section_work_begin;
401        HeapSize = 0;
402
403        /* Stabs debugging sections.  */
404        .stab          0 : { *(.stab) }
405        .stabstr       0 : { *(.stabstr) }
406        .stab.excl     0 : { *(.stab.excl) }
407        .stab.exclstr  0 : { *(.stab.exclstr) }
408        .stab.index    0 : { *(.stab.index) }
409        .stab.indexstr 0 : { *(.stab.indexstr) }
410        .comment       0 : { *(.comment) }
411        /* DWARF debug sections.
412           Symbols in the DWARF debugging sections are relative to the beginning
413           of the section so we begin them at 0.  */
414        /* DWARF 1.  */
415        .debug          0 : { *(.debug) }
416        .line           0 : { *(.line) }
417        /* GNU DWARF 1 extensions.  */
418        .debug_srcinfo  0 : { *(.debug_srcinfo) }
419        .debug_sfnames  0 : { *(.debug_sfnames) }
420        /* DWARF 1.1 and DWARF 2.  */
421        .debug_aranges  0 : { *(.debug_aranges) }
422        .debug_pubnames 0 : { *(.debug_pubnames) }
423        /* DWARF 2.  */
424        .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
425        .debug_abbrev   0 : { *(.debug_abbrev) }
426        .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
427        .debug_frame    0 : { *(.debug_frame) }
428        .debug_str      0 : { *(.debug_str) }
429        .debug_loc      0 : { *(.debug_loc) }
430        .debug_macinfo  0 : { *(.debug_macinfo) }
431        /* SGI/MIPS DWARF 2 extensions.  */
432        .debug_weaknames 0 : { *(.debug_weaknames) }
433        .debug_funcnames 0 : { *(.debug_funcnames) }
434        .debug_typenames 0 : { *(.debug_typenames) }
435        .debug_varnames  0 : { *(.debug_varnames) }
436        /* DWARF 3.  */
437        .debug_pubtypes 0 : { *(.debug_pubtypes) }
438        .debug_ranges   0 : { *(.debug_ranges) }
439        /* DWARF 5.  */
440        .debug_addr     0 : { *(.debug_addr) }
441        .debug_line_str 0 : { *(.debug_line_str) }
442        .debug_loclists 0 : { *(.debug_loclists) }
443        .debug_macro    0 : { *(.debug_macro) }
444        .debug_names    0 : { *(.debug_names) }
445        .debug_rnglists 0 : { *(.debug_rnglists) }
446        .debug_str_offsets 0 : { *(.debug_str_offsets) }
447        .debug_sup      0 : { *(.debug_sup) }
448        .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
449        .PPC.EMB.apuinfo 0 : { *(.PPC.EMB.apuinfo) }
450        /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
451
452        /*
453         * This is a RTEMS specific section to catch all unexpected input
454         * sections.  In case you get an error like
455         *   "section `.unexpected_sections' will not fit in region
456         *   `UNEXPECTED_SECTIONS'"
457         * you have to figure out the offending input section and add it to the
458         * appropriate output section definition above.
459         */
460        .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
461}
Note: See TracBrowser for help on using the repository browser.