source: rtems/spec/build/bsps/riscv/linkcmdsbase.yml @ 3cf618b3

Last change on this file since 3cf618b3 was 3cf618b3, checked in by Sebastian Huber <sebastian.huber@…>, on 02/25/22 at 14:02:05

bsps/riscv: Support .riscv.attributes

  • Property mode set to 100644
File size: 17.1 KB
Line 
1SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
2build-type: config-file
3content: |
4  /* Copyright (C) 2014-2018 Free Software Foundation, Inc.
5     Copying and distribution of this script, with or without modification,
6     are permitted in any medium without royalty provided the copyright
7     notice and this notice are preserved.  */
8
9  /*
10   * Copyright (c) 2018 embedded brains GmbH.
11   *
12   * Copyright (c) 2015 University of York.
13   * Hesham ALMatary <hmka501@york.ac.uk>
14   *
15   * Redistribution and use in source and binary forms, with or without
16   * modification, are permitted provided that the following conditions
17   * are met:
18   * 1. Redistributions of source code must retain the above copyright
19   *    notice, this list of conditions and the following disclaimer.
20   * 2. Redistributions in binary form must reproduce the above copyright
21   *    notice, this list of conditions and the following disclaimer in the
22   *    documentation and/or other materials provided with the distribution.
23   *
24   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
25   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27   * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
28   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30   * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34   * SUCH DAMAGE.
35   */
36
37  OUTPUT_ARCH(riscv)
38  ENTRY(_start)
39  ${LINKCMDS_START_DIRECTIVE}(start.o)
40
41  bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
42  bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
43
44  MEMORY {
45    UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
46  }
47
48  SECTIONS {
49    .start : ${LINKCMDS_ALIGN_DIRECTIVE} {
50      bsp_section_start_begin = .;
51      KEEP (*(.bsp_start_text))
52      KEEP (*(.bsp_start_data))
53      bsp_section_start_end = .;
54    } > REGION_START AT > REGION_START
55    bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
56
57    .text : ${LINKCMDS_ALIGN_DIRECTIVE} {
58      bsp_section_text_begin = .;
59      *(.text.unlikely .text.*_unlikely .text.unlikely.*)
60      *(.text.exit .text.exit.*)
61      *(.text.startup .text.startup.*)
62      *(.text.hot .text.hot.*)
63      *(.text .stub .text.* .gnu.linkonce.t.*)
64      /* .gnu.warning sections are handled specially by elf32.em.  */
65      *(.gnu.warning)
66    } > REGION_TEXT AT > REGION_TEXT_LOAD
67    .init : ${LINKCMDS_ALIGN_DIRECTIVE} {
68      KEEP (*(SORT_NONE(.init)))
69    } > REGION_TEXT AT > REGION_TEXT_LOAD
70    .fini : ${LINKCMDS_ALIGN_DIRECTIVE} {
71      KEEP (*(SORT_NONE(.fini)))
72      bsp_section_text_end = .;
73    } > REGION_TEXT AT > REGION_TEXT_LOAD
74    bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
75    bsp_section_text_load_begin = LOADADDR (.text);
76    bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
77
78    .robarrier : ${LINKCMDS_ALIGN_DIRECTIVE} {
79      . = ALIGN (bsp_section_robarrier_align);
80    } > REGION_RODATA AT > REGION_RODATA
81
82    .rodata : ${LINKCMDS_ALIGN_DIRECTIVE} {
83      bsp_section_rodata_begin = .;
84      *(.rodata .rodata.* .gnu.linkonce.r.*)
85    } > REGION_RODATA AT > REGION_RODATA_LOAD
86    .rodata1 : ${LINKCMDS_ALIGN_DIRECTIVE} {
87      *(.rodata1)
88    } > REGION_RODATA AT > REGION_RODATA_LOAD
89    .sdata2 : ${LINKCMDS_ALIGN_DIRECTIVE} {
90      *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
91    } > REGION_RODATA AT > REGION_RODATA_LOAD
92    .sbss2 : ${LINKCMDS_ALIGN_DIRECTIVE} {
93      *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
94    } > REGION_RODATA AT > REGION_RODATA_LOAD
95    .eh_frame_hdr : ${LINKCMDS_ALIGN_DIRECTIVE} {
96      *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*)
97    } > REGION_RODATA AT > REGION_RODATA_LOAD
98    .eh_frame : ${LINKCMDS_ALIGN_DIRECTIVE} {
99      KEEP (*(.eh_frame)) *(.eh_frame.*)
100    } > REGION_RODATA AT > REGION_RODATA_LOAD
101    .gcc_except_table : ${LINKCMDS_ALIGN_DIRECTIVE} {
102      *(.gcc_except_table .gcc_except_table.*)
103    } > REGION_RODATA AT > REGION_RODATA_LOAD
104    .gnu_extab : ${LINKCMDS_ALIGN_DIRECTIVE} {
105      *(.gnu_extab*)
106    } > REGION_RODATA AT > REGION_RODATA_LOAD
107    .tdata : ${LINKCMDS_ALIGN_DIRECTIVE} {
108      _TLS_Data_begin = .;
109      *(.tdata .tdata.* .gnu.linkonce.td.*)
110      _TLS_Data_end = .;
111    } > REGION_RODATA AT > REGION_RODATA_LOAD
112    .tbss : ${LINKCMDS_ALIGN_DIRECTIVE} {
113      _TLS_BSS_begin = .;
114      *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
115      _TLS_BSS_end = .;
116    } > REGION_RODATA AT > REGION_RODATA_LOAD
117    _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
118    _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
119    _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
120    _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
121    _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
122    _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
123    .preinit_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
124      PROVIDE_HIDDEN (__preinit_array_start = .);
125      KEEP (*(.preinit_array))
126      PROVIDE_HIDDEN (__preinit_array_end = .);
127    } > REGION_RODATA AT > REGION_RODATA_LOAD
128    .init_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
129      PROVIDE_HIDDEN (__init_array_start = .);
130      KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
131      KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
132      PROVIDE_HIDDEN (__init_array_end = .);
133    } > REGION_RODATA AT > REGION_RODATA_LOAD
134    .fini_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
135      PROVIDE_HIDDEN (__fini_array_start = .);
136      KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
137      KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
138      PROVIDE_HIDDEN (__fini_array_end = .);
139    } > REGION_RODATA AT > REGION_RODATA_LOAD
140    .ctors : ${LINKCMDS_ALIGN_DIRECTIVE} {
141      /* gcc uses crtbegin.o to find the start of
142         the constructors, so we make sure it is
143         first.  Because this is a wildcard, it
144         doesn't matter if the user does not
145         actually link against crtbegin.o; the
146         linker won't look for a file to match a
147         wildcard.  The wildcard also means that it
148         doesn't matter which directory crtbegin.o
149         is in.  */
150      KEEP (*crtbegin.o(.ctors))
151      KEEP (*crtbegin?.o(.ctors))
152      /* We don't want to include the .ctor section from
153         the crtend.o file until after the sorted ctors.
154         The .ctor section from the crtend file contains the
155         end of ctors marker and it must be last */
156      KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
157      KEEP (*(SORT(.ctors.*)))
158      KEEP (*(.ctors))
159    } > REGION_RODATA AT > REGION_RODATA_LOAD
160    .dtors : ${LINKCMDS_ALIGN_DIRECTIVE} {
161      KEEP (*crtbegin.o(.dtors))
162      KEEP (*crtbegin?.o(.dtors))
163      KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
164      KEEP (*(SORT(.dtors.*)))
165      KEEP (*(.dtors))
166    } > REGION_RODATA AT > REGION_RODATA_LOAD
167    .data.rel.ro : ${LINKCMDS_ALIGN_DIRECTIVE} {
168      *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
169      *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
170    } > REGION_RODATA AT > REGION_RODATA_LOAD
171    .jcr : ${LINKCMDS_ALIGN_DIRECTIVE} {
172      KEEP (*(.jcr))
173    } > REGION_RODATA AT > REGION_RODATA_LOAD
174    .interp : ${LINKCMDS_ALIGN_DIRECTIVE} {
175      *(.interp)
176    } > REGION_RODATA AT > REGION_RODATA_LOAD
177    .note.gnu.build-id : { *(.note.gnu.build-id)
178    } > REGION_RODATA AT > REGION_RODATA_LOAD
179    .hash : ${LINKCMDS_ALIGN_DIRECTIVE} {
180      *(.hash)
181    } > REGION_RODATA AT > REGION_RODATA_LOAD
182    .gnu.hash : ${LINKCMDS_ALIGN_DIRECTIVE} {
183      *(.gnu.hash)
184    } > REGION_RODATA AT > REGION_RODATA_LOAD
185    .dynsym : ${LINKCMDS_ALIGN_DIRECTIVE} {
186      *(.dynsym)
187    } > REGION_RODATA AT > REGION_RODATA_LOAD
188    .dynstr : ${LINKCMDS_ALIGN_DIRECTIVE} {
189      *(.dynstr)
190    } > REGION_RODATA AT > REGION_RODATA_LOAD
191    .gnu.version : ${LINKCMDS_ALIGN_DIRECTIVE} {
192      *(.gnu.version)
193    } > REGION_RODATA AT > REGION_RODATA_LOAD
194    .gnu.version_d : ${LINKCMDS_ALIGN_DIRECTIVE} {
195      *(.gnu.version_d)
196    } > REGION_RODATA AT > REGION_RODATA_LOAD
197    .gnu.version_r : ${LINKCMDS_ALIGN_DIRECTIVE} {
198      *(.gnu.version_r)
199    } > REGION_RODATA AT > REGION_RODATA_LOAD
200    .rela.dyn : ${LINKCMDS_ALIGN_DIRECTIVE} {
201      *(.rela.init)
202      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
203      *(.rela.fini)
204      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
205      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
206      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
207      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
208      *(.rela.ctors)
209      *(.rela.dtors)
210      *(.rela.got)
211      *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
212      *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
213      *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
214      *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
215      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
216      PROVIDE_HIDDEN (__rela_iplt_start = .);
217      *(.rela.iplt)
218      PROVIDE_HIDDEN (__rela_iplt_end = .);
219    } > REGION_RODATA AT > REGION_RODATA_LOAD
220    .rela.plt : ${LINKCMDS_ALIGN_DIRECTIVE} {
221        *(.rela.plt)
222    } > REGION_RODATA AT > REGION_RODATA_LOAD
223    .plt : ${LINKCMDS_ALIGN_DIRECTIVE} {
224      *(.plt)
225    } > REGION_RODATA AT > REGION_RODATA_LOAD
226    .iplt : ${LINKCMDS_ALIGN_DIRECTIVE} {
227      *(.iplt)
228    } > REGION_RODATA AT > REGION_RODATA_LOAD
229    .dynamic : ${LINKCMDS_ALIGN_DIRECTIVE} {
230      *(.dynamic)
231    } > REGION_RODATA AT > REGION_RODATA_LOAD
232    .tm_clone_table : ${LINKCMDS_ALIGN_DIRECTIVE} {
233      *(.tm_clone_table)
234    } > REGION_RODATA AT > REGION_RODATA_LOAD
235    .got : ${LINKCMDS_ALIGN_DIRECTIVE} {
236      *(.got.plt) *(.igot.plt) *(.got) *(.igot)
237    } > REGION_RODATA AT > REGION_RODATA_LOAD
238    .rtemsroset : ${LINKCMDS_ALIGN_DIRECTIVE} {
239      /* Special FreeBSD linker set sections */
240      __start_set_sysctl_set = .;
241      *(set_sysctl_*);
242      __stop_set_sysctl_set = .;
243      *(set_domain_*);
244      *(set_pseudo_*);
245
246      KEEP (*(SORT(.rtemsroset.*)))
247      bsp_section_rodata_end = .;
248    } > REGION_RODATA AT > REGION_RODATA_LOAD
249    bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
250    bsp_section_rodata_load_begin = LOADADDR (.rodata);
251    bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
252
253    .rwbarrier : ${LINKCMDS_ALIGN_DIRECTIVE} {
254      . = ALIGN (bsp_section_rwbarrier_align);
255    } > REGION_DATA AT > REGION_DATA
256
257    .fast_text : ${LINKCMDS_ALIGN_DIRECTIVE} {
258      bsp_section_fast_text_begin = .;
259      *(.bsp_fast_text)
260      bsp_section_fast_text_end = .;
261    } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
262    bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
263    bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
264    bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
265
266    .fast_data : ${LINKCMDS_ALIGN_DIRECTIVE} {
267      bsp_section_fast_data_begin = .;
268      *(.bsp_fast_data)
269      bsp_section_fast_data_end = .;
270    } > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
271    bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
272    bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
273    bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
274
275    .data : ${LINKCMDS_ALIGN_DIRECTIVE} {
276      bsp_section_data_begin = .;
277      *(.data .data.* .gnu.linkonce.d.*)
278      SORT(CONSTRUCTORS)
279    } > REGION_DATA AT > REGION_DATA_LOAD
280    .data1 : ${LINKCMDS_ALIGN_DIRECTIVE} {
281      *(.data1)
282    } > REGION_DATA AT > REGION_DATA_LOAD
283    .rtemsrwset : ${LINKCMDS_ALIGN_DIRECTIVE} {
284      KEEP (*(SORT(.rtemsrwset.*)))
285    } > REGION_DATA AT > REGION_DATA_LOAD
286    .htif ALIGN(4096) : ${LINKCMDS_ALIGN_DIRECTIVE} {
287      *(.htif)
288    } > REGION_DATA AT > REGION_DATA_LOAD
289    .sdata : ${LINKCMDS_ALIGN_DIRECTIVE} {
290      __global_pointer$$ = . + 0x800;
291      *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)
292      *(.sdata .sdata.* .gnu.linkonce.s.*)
293      bsp_section_data_end = .;
294    } > REGION_DATA AT > REGION_DATA_LOAD
295    bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
296    bsp_section_data_load_begin = LOADADDR (.data);
297    bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
298
299    .sbss : ${LINKCMDS_ALIGN_DIRECTIVE} {
300      bsp_section_bss_begin = .;
301      *(.dynsbss)
302      *(.sbss .sbss.* .gnu.linkonce.sb.*)
303      *(.scommon)
304    } > REGION_DATA AT > REGION_DATA
305    .bss : ${LINKCMDS_ALIGN_DIRECTIVE} {
306      *(.dynbss)
307      *(.bss .bss.* .gnu.linkonce.b.*)
308      *(COMMON)
309      bsp_section_bss_end = .;
310    } > REGION_DATA AT > REGION_DATA
311    bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
312
313    .rtemsstack (NOLOAD) : ${LINKCMDS_ALIGN_DIRECTIVE} {
314      bsp_section_rtemsstack_begin = .;
315      *(SORT(.rtemsstack.*))
316      bsp_section_rtemsstack_end = .;
317    } > REGION_RTEMSSTACK AT > REGION_RTEMSSTACK
318    bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;
319
320    .noinit (NOLOAD) : ${LINKCMDS_ALIGN_DIRECTIVE} {
321      bsp_section_noinit_begin = .;
322      *(.noinit*)
323      bsp_section_noinit_end = .;
324    } > REGION_WORK AT > REGION_WORK
325    bsp_section_noinit_size = bsp_section_noinit_end - bsp_section_noinit_begin;
326
327    .work (NOLOAD) : ${LINKCMDS_ALIGN_DIRECTIVE} {
328      /*
329       * The work section will occupy the remaining REGION_WORK region and
330       * contains the RTEMS work space and heap.
331       */
332      bsp_section_work_begin = .;
333      . += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
334      bsp_section_work_end = .;
335    } > REGION_WORK AT > REGION_WORK
336    bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
337
338    /* FIXME */
339    RamBase = ORIGIN (REGION_WORK);
340    RamSize = LENGTH (REGION_WORK);
341    RamEnd = RamBase + RamSize;
342    WorkAreaBase = bsp_section_work_begin;
343    HeapSize = 0;
344
345    /* Stabs debugging sections.  */
346    .stab          0 : { *(.stab) }
347    .stabstr       0 : { *(.stabstr) }
348    .stab.excl     0 : { *(.stab.excl) }
349    .stab.exclstr  0 : { *(.stab.exclstr) }
350    .stab.index    0 : { *(.stab.index) }
351    .stab.indexstr 0 : { *(.stab.indexstr) }
352    .comment       0 : { *(.comment) }
353    /* DWARF debug sections.
354       Symbols in the DWARF debugging sections are relative to the beginning
355       of the section so we begin them at 0.  */
356    /* DWARF 1.  */
357    .debug          0 : { *(.debug) }
358    .line           0 : { *(.line) }
359    /* GNU DWARF 1 extensions.  */
360    .debug_srcinfo  0 : { *(.debug_srcinfo) }
361    .debug_sfnames  0 : { *(.debug_sfnames) }
362    /* DWARF 1.1 and DWARF 2.  */
363    .debug_aranges  0 : { *(.debug_aranges) }
364    .debug_pubnames 0 : { *(.debug_pubnames) }
365    /* DWARF 2.  */
366    .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
367    .debug_abbrev   0 : { *(.debug_abbrev) }
368    .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
369    .debug_frame    0 : { *(.debug_frame) }
370    .debug_str      0 : { *(.debug_str) }
371    .debug_loc      0 : { *(.debug_loc) }
372    .debug_macinfo  0 : { *(.debug_macinfo) }
373    /* SGI/MIPS DWARF 2 extensions.  */
374    .debug_weaknames 0 : { *(.debug_weaknames) }
375    .debug_funcnames 0 : { *(.debug_funcnames) }
376    .debug_typenames 0 : { *(.debug_typenames) }
377    .debug_varnames  0 : { *(.debug_varnames) }
378    /* DWARF 3.  */
379    .debug_pubtypes 0 : { *(.debug_pubtypes) }
380    .debug_ranges   0 : { *(.debug_ranges) }
381    /* DWARF 5.  */
382    .debug_addr     0 : { *(.debug_addr) }
383    .debug_line_str 0 : { *(.debug_line_str) }
384    .debug_loclists 0 : { *(.debug_loclists) }
385    .debug_macro    0 : { *(.debug_macro) }
386    .debug_names    0 : { *(.debug_names) }
387    .debug_rnglists 0 : { *(.debug_rnglists) }
388    .debug_str_offsets 0 : { *(.debug_str_offsets) }
389    .debug_sup      0 : { *(.debug_sup) }
390    .riscv.attributes 0 : { KEEP (*(.riscv.attributes)) KEEP (*(.gnu.attributes)) }
391    /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
392    .shstrtab     0 : { *(.shstrtab) }
393    .strtab       0 : { *(.strtab) }
394    .symtab       0 : { *(.symtab) }
395    .symtab_shndx 0 : { *(.symtab_shndx) }
396    __cap_relocs  0 : { *(__cap_relocs) }
397
398    /*
399     * This is a RTEMS specific section to catch all unexpected input
400     * sections.  In case you get an error like
401     *   "section `.unexpected_sections' will not fit in region
402     *   `UNEXPECTED_SECTIONS'"
403     * you have to figure out the offending input section and add it to the
404     * appropriate output section definition above.
405     */
406    .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
407  }
408copyrights:
409- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
410enabled-by: true
411install-path: ${BSP_LIBDIR}
412links: []
413target: linkcmds.base
414type: build
Note: See TracBrowser for help on using the repository browser.