Back to home page

LXR

 
 

    


Warning, /spec/build/bsps/riscv/linkcmdsbase.yml is written in an unsupported language. File is not indexed.

0001 SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
0002 build-type: config-file
0003 content: |
0004   /* Copyright (C) 2014-2018 Free Software Foundation, Inc.
0005      Copying and distribution of this script, with or without modification,
0006      are permitted in any medium without royalty provided the copyright
0007      notice and this notice are preserved.  */
0008 
0009   /*
0010    * Copyright (c) 2018 embedded brains GmbH & Co. KG
0011    *
0012    * Copyright (c) 2015 University of York.
0013    * Hesham ALMatary <hmka501@york.ac.uk>
0014    *
0015    * Redistribution and use in source and binary forms, with or without
0016    * modification, are permitted provided that the following conditions
0017    * are met:
0018    * 1. Redistributions of source code must retain the above copyright
0019    *    notice, this list of conditions and the following disclaimer.
0020    * 2. Redistributions in binary form must reproduce the above copyright
0021    *    notice, this list of conditions and the following disclaimer in the
0022    *    documentation and/or other materials provided with the distribution.
0023    *
0024    * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
0025    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0026    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0027    * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
0028    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
0029    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
0030    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
0031    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
0032    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
0033    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
0034    * SUCH DAMAGE.
0035    */
0036 
0037   OUTPUT_ARCH(riscv)
0038   ENTRY(_start)
0039   ${LINKCMDS_START_DIRECTIVE}(start.o)
0040 
0041   bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
0042   bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
0043 
0044   MEMORY {
0045     UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
0046   }
0047 
0048   SECTIONS {
0049     .start : ${LINKCMDS_ALIGN_DIRECTIVE} {
0050       bsp_section_start_begin = .;
0051       KEEP (*(.bsp_start_text))
0052       KEEP (*(.bsp_start_data))
0053       bsp_section_start_end = .;
0054     } > REGION_START AT > REGION_START
0055     bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
0056 
0057     .text : ${LINKCMDS_ALIGN_DIRECTIVE} {
0058       bsp_section_text_begin = .;
0059       *(.text.unlikely .text.*_unlikely .text.unlikely.*)
0060       *(.text.exit .text.exit.*)
0061       *(.text.startup .text.startup.*)
0062       *(.text.hot .text.hot.*)
0063       *(.text .stub .text.* .gnu.linkonce.t.*)
0064       /* .gnu.warning sections are handled specially by elf32.em.  */
0065       *(.gnu.warning)
0066     } > REGION_TEXT AT > REGION_TEXT_LOAD
0067     .init : ${LINKCMDS_ALIGN_DIRECTIVE} {
0068       KEEP (*(SORT_NONE(.init)))
0069     } > REGION_TEXT AT > REGION_TEXT_LOAD
0070     .fini : ${LINKCMDS_ALIGN_DIRECTIVE} {
0071       KEEP (*(SORT_NONE(.fini)))
0072       bsp_section_text_end = .;
0073     } > REGION_TEXT AT > REGION_TEXT_LOAD
0074     bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
0075     bsp_section_text_load_begin = LOADADDR (.text);
0076     bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
0077 
0078     .robarrier : ${LINKCMDS_ALIGN_DIRECTIVE} {
0079       . = ALIGN (bsp_section_robarrier_align);
0080     } > REGION_RODATA AT > REGION_RODATA
0081 
0082     .rodata : ${LINKCMDS_ALIGN_DIRECTIVE} {
0083       bsp_section_rodata_begin = .;
0084       *(.rodata .rodata.* .gnu.linkonce.r.*)
0085     } > REGION_RODATA AT > REGION_RODATA_LOAD
0086     .rodata1 : ${LINKCMDS_ALIGN_DIRECTIVE} {
0087       *(.rodata1)
0088     } > REGION_RODATA AT > REGION_RODATA_LOAD
0089     .sdata2 : ${LINKCMDS_ALIGN_DIRECTIVE} {
0090       *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
0091     } > REGION_RODATA AT > REGION_RODATA_LOAD
0092     .sbss2 : ${LINKCMDS_ALIGN_DIRECTIVE} {
0093       *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
0094     } > REGION_RODATA AT > REGION_RODATA_LOAD
0095     .eh_frame_hdr : ${LINKCMDS_ALIGN_DIRECTIVE} {
0096       *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*)
0097     } > REGION_RODATA AT > REGION_RODATA_LOAD
0098     .eh_frame : ${LINKCMDS_ALIGN_DIRECTIVE} {
0099       KEEP (*(.eh_frame)) *(.eh_frame.*)
0100     } > REGION_RODATA AT > REGION_RODATA_LOAD
0101     .gcc_except_table : ${LINKCMDS_ALIGN_DIRECTIVE} {
0102       *(.gcc_except_table .gcc_except_table.*)
0103     } > REGION_RODATA AT > REGION_RODATA_LOAD
0104     .gnu_extab : ${LINKCMDS_ALIGN_DIRECTIVE} {
0105       *(.gnu_extab*)
0106     } > REGION_RODATA AT > REGION_RODATA_LOAD
0107     .tdata : ${LINKCMDS_ALIGN_DIRECTIVE} {
0108       _TLS_Data_begin = .;
0109       *(.tdata .tdata.* .gnu.linkonce.td.*)
0110       _TLS_Data_end = .;
0111     } > REGION_RODATA AT > REGION_RODATA_LOAD
0112     .tbss : ${LINKCMDS_ALIGN_DIRECTIVE} {
0113       _TLS_BSS_begin = .;
0114       *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0115       _TLS_BSS_end = .;
0116     } > REGION_RODATA AT > REGION_RODATA_LOAD
0117     _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
0118     _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
0119     _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
0120     _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
0121     _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
0122     _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0123     .preinit_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
0124       PROVIDE_HIDDEN (__preinit_array_start = .);
0125       KEEP (*(.preinit_array))
0126       PROVIDE_HIDDEN (__preinit_array_end = .);
0127     } > REGION_RODATA AT > REGION_RODATA_LOAD
0128     .init_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
0129       PROVIDE_HIDDEN (__init_array_start = .);
0130       KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
0131       KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
0132       PROVIDE_HIDDEN (__init_array_end = .);
0133     } > REGION_RODATA AT > REGION_RODATA_LOAD
0134     .fini_array : ${LINKCMDS_ALIGN_DIRECTIVE} {
0135       PROVIDE_HIDDEN (__fini_array_start = .);
0136       KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
0137       KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
0138       PROVIDE_HIDDEN (__fini_array_end = .);
0139     } > REGION_RODATA AT > REGION_RODATA_LOAD
0140     .ctors : ${LINKCMDS_ALIGN_DIRECTIVE} {
0141       /* gcc uses crtbegin.o to find the start of
0142          the constructors, so we make sure it is
0143          first.  Because this is a wildcard, it
0144          doesn't matter if the user does not
0145          actually link against crtbegin.o; the
0146          linker won't look for a file to match a
0147          wildcard.  The wildcard also means that it
0148          doesn't matter which directory crtbegin.o
0149          is in.  */
0150       KEEP (*crtbegin.o(.ctors))
0151       KEEP (*crtbegin?.o(.ctors))
0152       /* We don't want to include the .ctor section from
0153          the crtend.o file until after the sorted ctors.
0154          The .ctor section from the crtend file contains the
0155          end of ctors marker and it must be last */
0156       KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
0157       KEEP (*(SORT(.ctors.*)))
0158       KEEP (*(.ctors))
0159     } > REGION_RODATA AT > REGION_RODATA_LOAD
0160     .dtors : ${LINKCMDS_ALIGN_DIRECTIVE} {
0161       KEEP (*crtbegin.o(.dtors))
0162       KEEP (*crtbegin?.o(.dtors))
0163       KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
0164       KEEP (*(SORT(.dtors.*)))
0165       KEEP (*(.dtors))
0166     } > REGION_RODATA AT > REGION_RODATA_LOAD
0167     .data.rel.ro : ${LINKCMDS_ALIGN_DIRECTIVE} {
0168       *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
0169       *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
0170     } > REGION_RODATA AT > REGION_RODATA_LOAD
0171     .jcr : ${LINKCMDS_ALIGN_DIRECTIVE} {
0172       KEEP (*(.jcr))
0173     } > REGION_RODATA AT > REGION_RODATA_LOAD
0174     .interp : ${LINKCMDS_ALIGN_DIRECTIVE} {
0175       *(.interp)
0176     } > REGION_RODATA AT > REGION_RODATA_LOAD
0177     .note.gnu.build-id : { *(.note.gnu.build-id)
0178     } > REGION_RODATA AT > REGION_RODATA_LOAD
0179     .hash : ${LINKCMDS_ALIGN_DIRECTIVE} {
0180       *(.hash)
0181     } > REGION_RODATA AT > REGION_RODATA_LOAD
0182     .gnu.hash : ${LINKCMDS_ALIGN_DIRECTIVE} {
0183       *(.gnu.hash)
0184     } > REGION_RODATA AT > REGION_RODATA_LOAD
0185     .dynsym : ${LINKCMDS_ALIGN_DIRECTIVE} {
0186       *(.dynsym)
0187     } > REGION_RODATA AT > REGION_RODATA_LOAD
0188     .dynstr : ${LINKCMDS_ALIGN_DIRECTIVE} {
0189       *(.dynstr)
0190     } > REGION_RODATA AT > REGION_RODATA_LOAD
0191     .gnu.version : ${LINKCMDS_ALIGN_DIRECTIVE} {
0192       *(.gnu.version)
0193     } > REGION_RODATA AT > REGION_RODATA_LOAD
0194     .gnu.version_d : ${LINKCMDS_ALIGN_DIRECTIVE} {
0195       *(.gnu.version_d)
0196     } > REGION_RODATA AT > REGION_RODATA_LOAD
0197     .gnu.version_r : ${LINKCMDS_ALIGN_DIRECTIVE} {
0198       *(.gnu.version_r)
0199     } > REGION_RODATA AT > REGION_RODATA_LOAD
0200     .rela.dyn : ${LINKCMDS_ALIGN_DIRECTIVE} {
0201       *(.rela.init)
0202       *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
0203       *(.rela.fini)
0204       *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
0205       *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
0206       *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
0207       *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
0208       *(.rela.ctors)
0209       *(.rela.dtors)
0210       *(.rela.got)
0211       *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
0212       *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
0213       *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
0214       *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
0215       *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
0216       PROVIDE_HIDDEN (__rela_iplt_start = .);
0217       *(.rela.iplt)
0218       PROVIDE_HIDDEN (__rela_iplt_end = .);
0219     } > REGION_RODATA AT > REGION_RODATA_LOAD
0220     .rela.plt : ${LINKCMDS_ALIGN_DIRECTIVE} {
0221         *(.rela.plt)
0222     } > REGION_RODATA AT > REGION_RODATA_LOAD
0223     .plt : ${LINKCMDS_ALIGN_DIRECTIVE} {
0224       *(.plt)
0225     } > REGION_RODATA AT > REGION_RODATA_LOAD
0226     .iplt : ${LINKCMDS_ALIGN_DIRECTIVE} {
0227       *(.iplt)
0228     } > REGION_RODATA AT > REGION_RODATA_LOAD
0229     .dynamic : ${LINKCMDS_ALIGN_DIRECTIVE} {
0230       *(.dynamic)
0231     } > REGION_RODATA AT > REGION_RODATA_LOAD
0232     .tm_clone_table : ${LINKCMDS_ALIGN_DIRECTIVE} {
0233       *(.tm_clone_table)
0234     } > REGION_RODATA AT > REGION_RODATA_LOAD
0235     .got : ${LINKCMDS_ALIGN_DIRECTIVE} {
0236       *(.got.plt) *(.igot.plt) *(.got) *(.igot)
0237     } > REGION_RODATA AT > REGION_RODATA_LOAD
0238     .rtemsroset : ${LINKCMDS_ALIGN_DIRECTIVE} {
0239       /* Special FreeBSD linker set sections */
0240       __start_set_sysctl_set = .;
0241       *(set_sysctl_*);
0242       __stop_set_sysctl_set = .;
0243       *(set_domain_*);
0244       *(set_pseudo_*);
0245 
0246       KEEP (*(SORT(.rtemsroset.*)))
0247       bsp_section_rodata_end = .;
0248     } > REGION_RODATA AT > REGION_RODATA_LOAD
0249     bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
0250     bsp_section_rodata_load_begin = LOADADDR (.rodata);
0251     bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
0252 
0253     .rwbarrier : ${LINKCMDS_ALIGN_DIRECTIVE} {
0254       . = ALIGN (bsp_section_rwbarrier_align);
0255     } > REGION_DATA AT > REGION_DATA
0256 
0257     .fast_text : ${LINKCMDS_ALIGN_DIRECTIVE} {
0258       bsp_section_fast_text_begin = .;
0259       *(.bsp_fast_text)
0260       bsp_section_fast_text_end = .;
0261     } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
0262     bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
0263     bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
0264     bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
0265 
0266     .fast_data : ${LINKCMDS_ALIGN_DIRECTIVE} {
0267       bsp_section_fast_data_begin = .;
0268       *(.bsp_fast_data)
0269       bsp_section_fast_data_end = .;
0270     } > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
0271     bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
0272     bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
0273     bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
0274 
0275     .data : ${LINKCMDS_ALIGN_DIRECTIVE} {
0276       bsp_section_data_begin = .;
0277       *(.data .data.* .gnu.linkonce.d.*)
0278       SORT(CONSTRUCTORS)
0279     } > REGION_DATA AT > REGION_DATA_LOAD
0280     .data1 : ${LINKCMDS_ALIGN_DIRECTIVE} {
0281       *(.data1)
0282     } > REGION_DATA AT > REGION_DATA_LOAD
0283     .rtemsrwset : ${LINKCMDS_ALIGN_DIRECTIVE} {
0284       KEEP (*(SORT(.rtemsrwset.*)))
0285     } > REGION_DATA AT > REGION_DATA_LOAD
0286     .htif ALIGN(4096) : ${LINKCMDS_ALIGN_DIRECTIVE} {
0287       *(.htif)
0288     } > REGION_DATA AT > REGION_DATA_LOAD
0289     .sdata : ${LINKCMDS_ALIGN_DIRECTIVE} {
0290       __global_pointer$$ = . + 0x800;
0291       *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)
0292       *(.sdata .sdata.* .gnu.linkonce.s.*)
0293       bsp_section_data_end = .;
0294     } > REGION_DATA AT > REGION_DATA_LOAD
0295     bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
0296     bsp_section_data_load_begin = LOADADDR (.data);
0297     bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
0298 
0299     .sbss : ${LINKCMDS_ALIGN_DIRECTIVE} {
0300       bsp_section_bss_begin = .;
0301       *(.dynsbss)
0302       *(.sbss .sbss.* .gnu.linkonce.sb.*)
0303       *(.scommon)
0304     } > REGION_DATA AT > REGION_DATA
0305     .bss : ${LINKCMDS_ALIGN_DIRECTIVE} {
0306       *(.dynbss)
0307       *(.bss .bss.* .gnu.linkonce.b.*)
0308       *(COMMON)
0309       bsp_section_bss_end = .;
0310     } > REGION_DATA AT > REGION_DATA
0311     bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
0312 
0313     .rtemsstack (NOLOAD) : ${LINKCMDS_ALIGN_DIRECTIVE} {
0314       bsp_section_rtemsstack_begin = .;
0315       *(SORT(.rtemsstack.*))
0316       bsp_section_rtemsstack_end = .;
0317     } > REGION_RTEMSSTACK AT > REGION_RTEMSSTACK
0318     bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;
0319 
0320     .noinit (NOLOAD) : ${LINKCMDS_ALIGN_DIRECTIVE} {
0321       bsp_section_noinit_begin = .;
0322       *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0323       bsp_section_noinit_end = .;
0324     } > REGION_WORK AT > REGION_WORK
0325     bsp_section_noinit_size = bsp_section_noinit_end - bsp_section_noinit_begin;
0326 
0327     .work (NOLOAD) : ${LINKCMDS_ALIGN_DIRECTIVE} {
0328       /*
0329        * The work section will occupy the remaining REGION_WORK region and
0330        * contains the RTEMS work space and heap.
0331        */
0332       bsp_section_work_begin = .;
0333       . += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
0334       bsp_section_work_end = .;
0335     } > REGION_WORK AT > REGION_WORK
0336     bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
0337 
0338     /* FIXME */
0339     RamBase = ORIGIN (REGION_WORK);
0340     RamSize = LENGTH (REGION_WORK);
0341     RamEnd = RamBase + RamSize;
0342     WorkAreaBase = bsp_section_work_begin;
0343     HeapSize = 0;
0344 
0345     /* Stabs debugging sections.  */
0346     .stab          0 : { *(.stab) }
0347     .stabstr       0 : { *(.stabstr) }
0348     .stab.excl     0 : { *(.stab.excl) }
0349     .stab.exclstr  0 : { *(.stab.exclstr) }
0350     .stab.index    0 : { *(.stab.index) }
0351     .stab.indexstr 0 : { *(.stab.indexstr) }
0352     .comment       0 : { *(.comment) }
0353     /* DWARF debug sections.
0354        Symbols in the DWARF debugging sections are relative to the beginning
0355        of the section so we begin them at 0.  */
0356     /* DWARF 1.  */
0357     .debug          0 : { *(.debug) }
0358     .line           0 : { *(.line) }
0359     /* GNU DWARF 1 extensions.  */
0360     .debug_srcinfo  0 : { *(.debug_srcinfo) }
0361     .debug_sfnames  0 : { *(.debug_sfnames) }
0362     /* DWARF 1.1 and DWARF 2.  */
0363     .debug_aranges  0 : { *(.debug_aranges) }
0364     .debug_pubnames 0 : { *(.debug_pubnames) }
0365     /* DWARF 2.  */
0366     .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
0367     .debug_abbrev   0 : { *(.debug_abbrev) }
0368     .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
0369     .debug_frame    0 : { *(.debug_frame) }
0370     .debug_str      0 : { *(.debug_str) }
0371     .debug_loc      0 : { *(.debug_loc) }
0372     .debug_macinfo  0 : { *(.debug_macinfo) }
0373     /* SGI/MIPS DWARF 2 extensions.  */
0374     .debug_weaknames 0 : { *(.debug_weaknames) }
0375     .debug_funcnames 0 : { *(.debug_funcnames) }
0376     .debug_typenames 0 : { *(.debug_typenames) }
0377     .debug_varnames  0 : { *(.debug_varnames) }
0378     /* DWARF 3.  */
0379     .debug_pubtypes 0 : { *(.debug_pubtypes) }
0380     .debug_ranges   0 : { *(.debug_ranges) }
0381     /* DWARF 5.  */
0382     .debug_addr     0 : { *(.debug_addr) }
0383     .debug_line_str 0 : { *(.debug_line_str) }
0384     .debug_loclists 0 : { *(.debug_loclists) }
0385     .debug_macro    0 : { *(.debug_macro) }
0386     .debug_names    0 : { *(.debug_names) }
0387     .debug_rnglists 0 : { *(.debug_rnglists) }
0388     .debug_str_offsets 0 : { *(.debug_str_offsets) }
0389     .debug_sup      0 : { *(.debug_sup) }
0390 
0391     /* Addition to let linker know about custom section for GDB pretty-printing support. */
0392     .debug_gdb_scripts 0 : { *(.debug_gdb_scripts) }
0393 
0394     .riscv.attributes 0 : { KEEP (*(.riscv.attributes)) KEEP (*(.gnu.attributes)) }
0395     /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
0396     .shstrtab     0 : { *(.shstrtab) }
0397     .strtab       0 : { *(.strtab) }
0398     .symtab       0 : { *(.symtab) }
0399     .symtab_shndx 0 : { *(.symtab_shndx) }
0400     __cap_relocs  0 : { *(__cap_relocs) }
0401 
0402     /*
0403      * This is a RTEMS specific section to catch all unexpected input
0404      * sections.  In case you get an error like
0405      *   "section `.unexpected_sections' will not fit in region
0406      *   `UNEXPECTED_SECTIONS'"
0407      * you have to figure out the offending input section and add it to the
0408      * appropriate output section definition above.
0409      */
0410     .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
0411   }
0412 copyrights:
0413 - Copyright (C) 2020 embedded brains GmbH & Co. KG
0414 enabled-by: true
0415 install-path: ${BSP_LIBDIR}
0416 links: []
0417 target: linkcmds.base
0418 type: build