Warning, /bsps/powerpc/shared/start/linkcmds.base is written in an unsupported language. File is not indexed.
0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002
0003 /**
0004 * @file
0005 *
0006 * @ingroup bsp_linker
0007 *
0008 * @brief Linker command base file.
0009 */
0010
0011 /*
0012 * Copyright (C) 2011, 2016 embedded brains GmbH & Co. KG
0013 *
0014 * Redistribution and use in source and binary forms, with or without
0015 * modification, are permitted provided that the following conditions
0016 * are met:
0017 * 1. Redistributions of source code must retain the above copyright
0018 * notice, this list of conditions and the following disclaimer.
0019 * 2. Redistributions in binary form must reproduce the above copyright
0020 * notice, this list of conditions and the following disclaimer in the
0021 * documentation and/or other materials provided with the distribution.
0022 *
0023 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0024 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0025 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0026 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0027 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0028 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0029 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0030 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0031 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0032 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0033 * POSSIBILITY OF SUCH DAMAGE.
0034 */
0035
0036 ENTRY (_start)
0037 STARTUP (start.o)
0038
0039 /*
0040 * The upper layer linker command file may optionally define the symbol
0041 * bsp_section_small_data_area_size. By default, the small data area is
0042 * defined by the .sdata and .sbss input sections. Define
0043 * bsp_section_small_data_area_size, if you want to make space available for
0044 * dynamically loaded libraries (libdl). Small memory targets which do not use
0045 * libdl, should not define this symbol.
0046 */
0047
0048 /*
0049 * Global symbols that may be defined externally
0050 */
0051
0052 bsp_section_xbarrier_align = DEFINED (bsp_section_xbarrier_align) ? bsp_section_xbarrier_align : 1;
0053 bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
0054 bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
0055
0056 MEMORY {
0057 UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
0058 }
0059
0060 SECTIONS {
0061 .start : ALIGN_WITH_INPUT {
0062 bsp_section_start_begin = .;
0063 KEEP (*(.bsp_start_text))
0064 KEEP (*(.bsp_start_data))
0065 bsp_section_start_end = .;
0066 } > REGION_START AT > REGION_START
0067 bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
0068
0069 .xbarrier : ALIGN_WITH_INPUT {
0070 . = ALIGN (bsp_section_xbarrier_align);
0071 } > REGION_TEXT AT > REGION_TEXT
0072
0073 .text : ALIGN_WITH_INPUT {
0074 bsp_section_text_begin = .;
0075 *(SORT(.bsp_text*))
0076 *(.text.unlikely .text.*_unlikely)
0077 *(.text .stub .text.* .gnu.linkonce.t.*)
0078 *(.gnu.warning)
0079 *(.sfpr .glink)
0080 } > REGION_TEXT AT > REGION_TEXT_LOAD
0081 .init : ALIGN_WITH_INPUT {
0082 KEEP (*(.init))
0083 } > REGION_TEXT AT > REGION_TEXT_LOAD
0084 .fini : ALIGN_WITH_INPUT {
0085 PROVIDE (_fini = .);
0086 KEEP (*(.fini))
0087 bsp_section_text_end = .;
0088 } > REGION_TEXT AT > REGION_TEXT_LOAD
0089 bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
0090 bsp_section_text_load_begin = LOADADDR (.text);
0091 bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
0092
0093 .fast_text : ALIGN_WITH_INPUT {
0094 bsp_section_fast_text_begin = .;
0095 *(.bsp_fast_text)
0096 bsp_section_fast_text_end = .;
0097 } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
0098 bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
0099 bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
0100 bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
0101
0102 .robarrier : ALIGN_WITH_INPUT {
0103 . = ALIGN (bsp_section_robarrier_align);
0104 } > REGION_RODATA AT > REGION_RODATA
0105
0106 .rodata : ALIGN_WITH_INPUT {
0107 bsp_section_rodata_begin = .;
0108 *(SORT(.bsp_rodata*))
0109 *(.rodata .rodata.* .gnu.linkonce.r.*)
0110 } > REGION_RODATA AT > REGION_RODATA_LOAD
0111 .rodata1 : ALIGN_WITH_INPUT {
0112 *(.rodata1)
0113 } > REGION_RODATA AT > REGION_RODATA_LOAD
0114 .sdata2 : ALIGN_WITH_INPUT {
0115 PROVIDE (_SDA2_BASE_ = 32768);
0116 *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
0117 } > REGION_RODATA AT > REGION_RODATA_LOAD
0118 .sbss2 : ALIGN_WITH_INPUT {
0119 *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
0120 } > REGION_RODATA AT > REGION_RODATA_LOAD
0121 .eh_frame_hdr : ALIGN_WITH_INPUT {
0122 *(.eh_frame_hdr)
0123 } > REGION_RODATA AT > REGION_RODATA_LOAD
0124 .eh_frame : ALIGN_WITH_INPUT {
0125 KEEP (*(.eh_frame))
0126 } > REGION_RODATA AT > REGION_RODATA_LOAD
0127 .gcc_except_table : ALIGN_WITH_INPUT {
0128 *(.gcc_except_table .gcc_except_table.*)
0129 } > REGION_RODATA AT > REGION_RODATA_LOAD
0130 .tdata : ALIGN_WITH_INPUT {
0131 _TLS_Data_begin = .;
0132 *(.tdata .tdata.* .gnu.linkonce.td.*)
0133 _TLS_Data_end = .;
0134 } > REGION_RODATA AT > REGION_RODATA_LOAD
0135 .tbss : ALIGN_WITH_INPUT {
0136 _TLS_BSS_begin = .;
0137 *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
0138 _TLS_BSS_end = .;
0139 } > REGION_RODATA AT > REGION_RODATA_LOAD
0140 _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
0141 _TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
0142 _TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
0143 _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
0144 _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
0145 _TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
0146 .preinit_array : ALIGN_WITH_INPUT {
0147 PROVIDE_HIDDEN (__preinit_array_start = .);
0148 KEEP (*(.preinit_array))
0149 PROVIDE_HIDDEN (__preinit_array_end = .);
0150 } > REGION_RODATA AT > REGION_RODATA_LOAD
0151 .init_array : ALIGN_WITH_INPUT {
0152 PROVIDE_HIDDEN (__init_array_start = .);
0153 KEEP (*(SORT(.init_array.*)))
0154 KEEP (*(.init_array))
0155 PROVIDE_HIDDEN (__init_array_end = .);
0156 } > REGION_RODATA AT > REGION_RODATA_LOAD
0157 .fini_array : ALIGN_WITH_INPUT {
0158 PROVIDE_HIDDEN (__fini_array_start = .);
0159 KEEP (*(SORT(.fini_array.*)))
0160 KEEP (*(.fini_array))
0161 PROVIDE_HIDDEN (__fini_array_end = .);
0162 } > REGION_RODATA AT > REGION_RODATA_LOAD
0163 .ctors : ALIGN_WITH_INPUT {
0164 KEEP (*ecrti.o(.ctors))
0165 KEEP (*crtbegin.o(.ctors))
0166 KEEP (*crtbegin?.o(.ctors))
0167 KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
0168 KEEP (*(SORT(.ctors.*)))
0169 KEEP (*(.ctors))
0170 } > REGION_RODATA AT > REGION_RODATA_LOAD
0171 .dtors : ALIGN_WITH_INPUT {
0172 KEEP (*ecrti.o(.dtors))
0173 KEEP (*crtbegin.o(.dtors))
0174 KEEP (*crtbegin?.o(.dtors))
0175 KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
0176 KEEP (*(SORT(.dtors.*)))
0177 KEEP (*(.dtors))
0178 } > REGION_RODATA AT > REGION_RODATA_LOAD
0179 .jcr : ALIGN_WITH_INPUT {
0180 KEEP (*(.jcr))
0181 } > REGION_RODATA AT > REGION_RODATA_LOAD
0182 .data.rel.ro : ALIGN_WITH_INPUT {
0183 *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
0184 } > REGION_RODATA AT > REGION_RODATA_LOAD
0185 .fixup : ALIGN_WITH_INPUT {
0186 *(.fixup)
0187 } > REGION_RODATA AT > REGION_RODATA_LOAD
0188 .dynamic : ALIGN_WITH_INPUT {
0189 *(.dynamic)
0190 } > REGION_RODATA AT > REGION_RODATA_LOAD
0191 .opd : ALIGN_WITH_INPUT {
0192 KEEP (*(.opd))
0193 } > REGION_RODATA AT > REGION_RODATA_LOAD
0194 .tm_clone_table : ALIGN_WITH_INPUT {
0195 *(.tm_clone_table)
0196 } > REGION_RODATA AT > REGION_RODATA_LOAD
0197 .toc1 : ALIGN_WITH_INPUT {
0198 *(.toc1)
0199 } > REGION_RODATA AT > REGION_RODATA_LOAD
0200 .branch_lt : ALIGN_WITH_INPUT {
0201 *(.branch_lt)
0202 } > REGION_RODATA AT > REGION_RODATA_LOAD
0203 .got1 : ALIGN_WITH_INPUT {
0204 *(.got1)
0205 } > REGION_RODATA AT > REGION_RODATA_LOAD
0206 .got2 : ALIGN_WITH_INPUT {
0207 *(.got2)
0208 } > REGION_RODATA AT > REGION_RODATA_LOAD
0209 .got : ALIGN_WITH_INPUT {
0210 *(.got)
0211 } > REGION_RODATA AT > REGION_RODATA_LOAD
0212 .toc : ALIGN_WITH_INPUT {
0213 *(.toc)
0214 } > REGION_RODATA AT > REGION_RODATA_LOAD
0215 .plt : ALIGN_WITH_INPUT {
0216 *(.plt)
0217 } > REGION_RODATA AT > REGION_RODATA_LOAD
0218 .iplt : ALIGN_WITH_INPUT {
0219 *(.iplt)
0220 } > REGION_RODATA AT > REGION_RODATA_LOAD
0221 .interp : ALIGN_WITH_INPUT {
0222 *(.interp)
0223 } > REGION_RODATA AT > REGION_RODATA_LOAD
0224 .note.gnu.build-id : ALIGN_WITH_INPUT {
0225 *(.note.gnu.build-id)
0226 } > REGION_RODATA AT > REGION_RODATA_LOAD
0227 .hash : ALIGN_WITH_INPUT {
0228 *(.hash)
0229 } > REGION_RODATA AT > REGION_RODATA_LOAD
0230 .gnu.hash : ALIGN_WITH_INPUT {
0231 *(.gnu.hash)
0232 } > REGION_RODATA AT > REGION_RODATA_LOAD
0233 .dynsym : ALIGN_WITH_INPUT {
0234 *(.dynsym)
0235 } > REGION_RODATA AT > REGION_RODATA_LOAD
0236 .dynstr : ALIGN_WITH_INPUT {
0237 *(.dynstr)
0238 } > REGION_RODATA AT > REGION_RODATA_LOAD
0239 .gnu.version : ALIGN_WITH_INPUT {
0240 *(.gnu.version)
0241 } > REGION_RODATA AT > REGION_RODATA_LOAD
0242 .gnu.version_d : ALIGN_WITH_INPUT {
0243 *(.gnu.version_d)
0244 } > REGION_RODATA AT > REGION_RODATA_LOAD
0245 .gnu.version_r : ALIGN_WITH_INPUT {
0246 *(.gnu.version_r)
0247 } > REGION_RODATA AT > REGION_RODATA_LOAD
0248 .rela.dyn : ALIGN_WITH_INPUT {
0249 *(.rela.init)
0250 *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
0251 *(.rela.fini)
0252 *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
0253 *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
0254 *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
0255 *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
0256 *(.rela.ctors)
0257 *(.rela.dtors)
0258 *(.rela.got)
0259 *(.rela.got1)
0260 *(.rela.got2)
0261 *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
0262 *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
0263 *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
0264 *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
0265 *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
0266 *(.rela.rtemsroset*)
0267 *(.rela.rtemsrwset*)
0268 PROVIDE_HIDDEN (__rel_iplt_start = .);
0269 PROVIDE_HIDDEN (__rel_iplt_end = .);
0270 PROVIDE_HIDDEN (__rela_iplt_start = .);
0271 *(.rela.iplt)
0272 PROVIDE_HIDDEN (__rela_iplt_end = .);
0273 } > REGION_RODATA AT > REGION_RODATA_LOAD
0274 .rela.plt : ALIGN_WITH_INPUT {
0275 *(.rela.plt)
0276 } > REGION_RODATA AT > REGION_RODATA_LOAD
0277 .rtemsroset : ALIGN_WITH_INPUT {
0278 /* Special FreeBSD linker set sections */
0279 __start_set_sysctl_set = .;
0280 *(set_sysctl_*);
0281 __stop_set_sysctl_set = .;
0282 *(set_domain_*);
0283 *(set_pseudo_*);
0284
0285 KEEP (*(SORT(.rtemsroset.*)))
0286 bsp_section_rodata_end = .;
0287 } > REGION_RODATA AT > REGION_RODATA_LOAD
0288 bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
0289 bsp_section_rodata_load_begin = LOADADDR (.rodata);
0290 bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
0291
0292 .rwbarrier : ALIGN_WITH_INPUT {
0293 . = ALIGN (bsp_section_rwbarrier_align);
0294 } > REGION_DATA AT > REGION_DATA
0295
0296 .fast_data : ALIGN_WITH_INPUT {
0297 bsp_section_fast_data_begin = .;
0298 *(SORT(.bsp_fast_data*))
0299 bsp_section_fast_data_end = .;
0300 } > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
0301 bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
0302 bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
0303 bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
0304
0305 .data : ALIGN_WITH_INPUT {
0306 bsp_section_data_begin = .;
0307 *(SORT(.bsp_data*))
0308 *(.data .data.* .gnu.linkonce.d.*)
0309 SORT(CONSTRUCTORS)
0310 } > REGION_DATA AT > REGION_DATA_LOAD
0311 .data1 : ALIGN_WITH_INPUT {
0312 *(.data1)
0313 } > REGION_DATA AT > REGION_DATA_LOAD
0314 .rtemsrwset : ALIGN_WITH_INPUT {
0315 KEEP (*(SORT(.rtemsrwset.*)))
0316 } > REGION_DATA AT > REGION_DATA_LOAD
0317 .sdata : ALIGN_WITH_INPUT {
0318 bsp_section_sdata_begin = .;
0319 PROVIDE (_SDA_BASE_ = 32768);
0320 *(.sdata .sdata.* .gnu.linkonce.s.*)
0321 bsp_section_sdata_end = .;
0322 bsp_section_data_end = .;
0323 } > REGION_DATA AT > REGION_DATA_LOAD
0324 bsp_section_sdata_size = bsp_section_sdata_end - bsp_section_sdata_begin;
0325 bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
0326 bsp_section_data_load_begin = LOADADDR (.data);
0327 bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
0328
0329 .sbss : ALIGN_WITH_INPUT {
0330 bsp_section_sbss_begin = .;
0331 *(.dynsbss)
0332 *(.sbss .sbss.* .gnu.linkonce.sb.*)
0333 *(.scommon)
0334 bsp_section_sbss_end = .;
0335 bsp_section_sdata_libdl_begin = .;
0336 . = DEFINED(bsp_section_small_data_area_size) ?
0337 bsp_section_sdata_begin + bsp_section_small_data_area_size : .;
0338 bsp_section_sdata_libdl_end = .;
0339 } > REGION_DATA AT > REGION_DATA
0340 bsp_section_sbss_size = bsp_section_sbss_end - bsp_section_sbss_begin;
0341 bsp_section_sdata_libdl_size = bsp_section_sdata_libdl_end - bsp_section_sdata_libdl_begin;
0342
0343 .bss : ALIGN_WITH_INPUT {
0344 bsp_section_bss_begin = .;
0345 *(.dynbss)
0346 *(.bss .bss.* .gnu.linkonce.b.*)
0347 *(COMMON)
0348 bsp_section_bss_end = .;
0349 } > REGION_BSS AT > REGION_BSS
0350 bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
0351
0352 .rtemsstack (NOLOAD) : ALIGN_WITH_INPUT {
0353 bsp_section_rtemsstack_begin = .;
0354 *(SORT(.rtemsstack.*))
0355 bsp_section_rtemsstack_end = .;
0356 } > REGION_RTEMSSTACK AT > REGION_RTEMSSTACK
0357 bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;
0358
0359 .noinit (NOLOAD) : ALIGN_WITH_INPUT {
0360 bsp_section_noinit_begin = .;
0361 *(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
0362 bsp_section_noinit_end = .;
0363 } > REGION_WORK AT > REGION_WORK
0364 bsp_section_noinit_size = bsp_section_noinit_end - bsp_section_noinit_begin;
0365
0366 .work : ALIGN_WITH_INPUT {
0367 /*
0368 * The work section will occupy the remaining REGION_WORK region and
0369 * contains the RTEMS work space and heap.
0370 */
0371 bsp_section_work_begin = .;
0372 . += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
0373 bsp_section_work_end = .;
0374 } > REGION_WORK AT > REGION_WORK
0375 bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
0376
0377 .stack : ALIGN_WITH_INPUT {
0378 /*
0379 * The stack section will occupy the remaining REGION_STACK region and may
0380 * contain the task stacks. Depending on the region distribution this
0381 * section may be of zero size.
0382 */
0383 bsp_section_stack_begin = .;
0384 . += ORIGIN (REGION_STACK) + LENGTH (REGION_STACK) - ABSOLUTE (.);
0385 bsp_section_stack_end = .;
0386 } > REGION_STACK AT > REGION_STACK
0387 bsp_section_stack_size = bsp_section_stack_end - bsp_section_stack_begin;
0388
0389 .nocache : ALIGN_WITH_INPUT {
0390 bsp_section_nocache_begin = .;
0391 *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_nocache*)))
0392 bsp_section_nocache_end = .;
0393 } > REGION_NOCACHE AT > REGION_NOCACHE_LOAD
0394 bsp_section_nocache_size = bsp_section_nocache_end - bsp_section_nocache_begin;
0395 bsp_section_nocache_load_begin = LOADADDR (.nocache);
0396 bsp_section_nocache_load_end = bsp_section_nocache_load_begin + bsp_section_nocache_size;
0397
0398 .nocachenoload (NOLOAD) : ALIGN_WITH_INPUT {
0399 bsp_section_nocachenoload_begin = .;
0400 *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_noload_nocache*)))
0401 bsp_section_nocacheheap_begin = .;
0402 . += ORIGIN (REGION_NOCACHE) + LENGTH (REGION_NOCACHE) - ABSOLUTE (.);
0403 bsp_section_nocacheheap_end = .;
0404 bsp_section_nocachenoload_end = .;
0405 } > REGION_NOCACHE AT > REGION_NOCACHE
0406 bsp_section_nocacheheap_size = bsp_section_nocacheheap_end - bsp_section_nocacheheap_begin;
0407 bsp_section_nocachenoload_size = bsp_section_nocachenoload_end - bsp_section_nocachenoload_begin;
0408
0409 .nvram (NOLOAD) : ALIGN_WITH_INPUT {
0410 bsp_section_nvram_begin = .;
0411 *(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_nvram*)))
0412 bsp_section_nvram_end = .;
0413 } > REGION_NVRAM AT > REGION_NVRAM
0414 bsp_section_nvram_size = bsp_section_nvram_end - bsp_section_nvram_begin;
0415
0416 /* FIXME */
0417 RamBase = ORIGIN (REGION_WORK);
0418 RamSize = LENGTH (REGION_WORK);
0419 RamEnd = RamBase + RamSize;
0420 WorkAreaBase = bsp_section_work_begin;
0421 HeapSize = 0;
0422
0423 /* Stabs debugging sections. */
0424 .stab 0 : { *(.stab) }
0425 .stabstr 0 : { *(.stabstr) }
0426 .stab.excl 0 : { *(.stab.excl) }
0427 .stab.exclstr 0 : { *(.stab.exclstr) }
0428 .stab.index 0 : { *(.stab.index) }
0429 .stab.indexstr 0 : { *(.stab.indexstr) }
0430 .comment 0 : { *(.comment) }
0431 /* DWARF debug sections.
0432 Symbols in the DWARF debugging sections are relative to the beginning
0433 of the section so we begin them at 0. */
0434 /* DWARF 1. */
0435 .debug 0 : { *(.debug) }
0436 .line 0 : { *(.line) }
0437 /* GNU DWARF 1 extensions. */
0438 .debug_srcinfo 0 : { *(.debug_srcinfo) }
0439 .debug_sfnames 0 : { *(.debug_sfnames) }
0440 /* DWARF 1.1 and DWARF 2. */
0441 .debug_aranges 0 : { *(.debug_aranges) }
0442 .debug_pubnames 0 : { *(.debug_pubnames) }
0443 /* DWARF 2. */
0444 .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
0445 .debug_abbrev 0 : { *(.debug_abbrev) }
0446 .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) }
0447 .debug_frame 0 : { *(.debug_frame) }
0448 .debug_str 0 : { *(.debug_str) }
0449 .debug_loc 0 : { *(.debug_loc) }
0450 .debug_macinfo 0 : { *(.debug_macinfo) }
0451 /* SGI/MIPS DWARF 2 extensions. */
0452 .debug_weaknames 0 : { *(.debug_weaknames) }
0453 .debug_funcnames 0 : { *(.debug_funcnames) }
0454 .debug_typenames 0 : { *(.debug_typenames) }
0455 .debug_varnames 0 : { *(.debug_varnames) }
0456 /* DWARF 3. */
0457 .debug_pubtypes 0 : { *(.debug_pubtypes) }
0458 .debug_ranges 0 : { *(.debug_ranges) }
0459 /* DWARF 5. */
0460 .debug_addr 0 : { *(.debug_addr) }
0461 .debug_line_str 0 : { *(.debug_line_str) }
0462 .debug_loclists 0 : { *(.debug_loclists) }
0463 .debug_macro 0 : { *(.debug_macro) }
0464 .debug_names 0 : { *(.debug_names) }
0465 .debug_rnglists 0 : { *(.debug_rnglists) }
0466 .debug_str_offsets 0 : { *(.debug_str_offsets) }
0467 .debug_sup 0 : { *(.debug_sup) }
0468
0469 /* Addition to let linker know about custom section for GDB pretty-printing support. */
0470 .debug_gdb_scripts 0 : { *(.debug_gdb_scripts) }
0471
0472 .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
0473 .PPC.EMB.apuinfo 0 : { *(.PPC.EMB.apuinfo) }
0474 /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
0475
0476 /*
0477 * This is a RTEMS specific section to catch all unexpected input
0478 * sections. In case you get an error like
0479 * "section `.unexpected_sections' will not fit in region
0480 * `UNEXPECTED_SECTIONS'"
0481 * you have to figure out the offending input section and add it to the
0482 * appropriate output section definition above.
0483 */
0484 .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
0485 }