summaryrefslogblamecommitdiffstats
path: root/bsps/arm/shared/start/linkcmds.base
blob: 1b88255e445860ff5dd193c2234faada8c4b79ee (plain) (tree)
1
2
3
4
5
6
7
8
9


        

                      
                                   


   
                                                                       
  
                        
                 





                                                          
                                        





                                                                    
              
                 
 
  
                                                
   
 
                                                                                     
 
                                                                                                   
                                                                                                      
                                                                                                      
 


                                                                           
                                                                 
 
                                                                           
                                                                 
 
                                                                           
                                                                 
 


                                                                           



                                                             
          
                                   
                                            
                                         
                                         

                                          
                                                                                 
 
                                      
                                                       
                                            
 
                                  
                                           




                                                                               

                                             
                               

                                             
                               










                                                                              
                                         
                                             
                                                                              
                                                       
                                                                                        
 
                                       
                                                        
                                            
 
                                    
                                             
                                                      

                                                 
                           

                                                 
                                                       






                                                       
                                   

                                                 
                                                        

                                                 
                                    
                                                     
                                  

                                                 
                                   
                                                               
                                 
                                                 
                                                         

                                                                                 

                                                      
                                                                 
                                           


                                                           

                                                 
                                                        

                                                                                                          
                                                      

                                                 
                                                        

                                                                                                          
                                                      
                                                 
                                         

                                                                     

                                                 
                              

                                                 
                          

                                                 
                                     

                                                 
                        

                                                 
                            

                                                 
                          

                                                 
                          

                                                 
                               

                                                 
                                 

                                                 
                                 

                                                 
















                                                                  

                                                 










                                                                     

                                    




                                                       

                                                 
                           

                                                 
                            

                                                 
                       

                                                 
                        

                                                 
                           
                                                 


                                                 
                                 
                                                         

                                                 
                                                         

                                           
                                          

                                
 
                                             









                                                                               


                                                                                    
                                                           
                                                                                              
 
                                       
                                                        
                                        
 
                                    
                                             
                                                                                                





                                                                                                                                  
                                       
                                                
                                                                     





                                                                                                       
                                       
                                                
                                                                     
                                              
                                                       


                                                                                                       
 
                                  


                                                  

                                             
                         


                                             





                                                                                        
                                 
                                          

                                                
                         
                                        
                                      
                                                                           
 






                                                                                                






                                                                                    
                                  
                  

                                                                                    
                   
                                           
                                                                                

                                         
                                                                              
 
                                   
                  


                                                                                          
                   
                                            
                                                                                  

                                          
                                                                                 
 

                                              
                                                                   

                                                   



                                                                                                 

                                                    
                                                                          


                                                                                      
                                                  

                                                                                                   
                                                                                                         
 
                   

                                       
                                   
                                              
                     
 










                                                                                
                       

                                         
                                      

                                                 
                                     

                                                  
                       

                                                                 
                                                                            



                                                 
                                           



                                                    
                       

                                                  
                       

                                                  
                                                  

                                               
                                                  
                                                        
                                             


                                                                                   
 








                                                                               
 
/**
 * @file
 *
 * @ingroup bsp_linker
 *
 * @brief Linker command base file.
 */

/*
 * Copyright (c) 2008, 2016 embedded brains GmbH.  All rights reserved.
 *
 *  embedded brains GmbH
 *  Dornierstr. 4
 *  82178 Puchheim
 *  Germany
 *  <rtems@embedded-brains.de>
 *
 * The license and distribution terms for this file may be
 * found in the file LICENSE in this distribution or at
 * http://www.rtems.org/license/LICENSE.
 */

OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")

OUTPUT_ARCH (arm)

ENTRY (_start)
STARTUP (start.o)

/*
 * Global symbols that may be defined externally
 */

bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64;

bsp_section_xbarrier_align = DEFINED (bsp_section_xbarrier_align) ? bsp_section_xbarrier_align : 1;
bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;

bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 8;

bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 0;
bsp_stack_abt_size = ALIGN (bsp_stack_abt_size, bsp_stack_align);

bsp_stack_fiq_size = DEFINED (bsp_stack_fiq_size) ? bsp_stack_fiq_size : 0;
bsp_stack_fiq_size = ALIGN (bsp_stack_fiq_size, bsp_stack_align);

bsp_stack_und_size = DEFINED (bsp_stack_und_size) ? bsp_stack_und_size : 0;
bsp_stack_und_size = ALIGN (bsp_stack_und_size, bsp_stack_align);

bsp_stack_hyp_size = DEFINED (bsp_stack_hyp_size) ? bsp_stack_hyp_size : 0;
bsp_stack_hyp_size = ALIGN (bsp_stack_hyp_size, bsp_stack_align);

MEMORY {
	UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
}

SECTIONS {
	.start : ALIGN_WITH_INPUT {
		bsp_section_start_begin = .;
		KEEP (*(.bsp_start_text))
		KEEP (*(.bsp_start_data))
		bsp_section_start_end = .;
	} > REGION_START AT > REGION_START
	bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;

	.xbarrier : ALIGN_WITH_INPUT {
		. = ALIGN (bsp_section_xbarrier_align);
	} > REGION_VECTOR AT > REGION_VECTOR

	.text : ALIGN_WITH_INPUT {
		bsp_section_text_begin = .;
		*(.text.unlikely .text.*_unlikely)
		*(.text .stub .text.* .gnu.linkonce.t.*)
		/* .gnu.warning sections are handled specially by elf32.em.  */
		*(.gnu.warning)
		*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
	} > REGION_TEXT AT > REGION_TEXT_LOAD
	.init : ALIGN_WITH_INPUT {
		KEEP (*(.init))
	} > REGION_TEXT AT > REGION_TEXT_LOAD
	.fini : ALIGN_WITH_INPUT {
		KEEP (*(.fini))

		/*
		 * If requested, align the size of the combined start and text
		 * section to the next power of two to meet MPU region
		 * alignment requirements.
		 */
		. = DEFINED (bsp_align_text_and_rodata_end_to_power_of_2) ?
		    bsp_section_start_begin
		    + ALIGN (. - bsp_section_start_begin,
		    1 << LOG2CEIL (. - bsp_section_start_begin)) : .;

		bsp_section_text_end = .;
	} > REGION_TEXT AT > REGION_TEXT_LOAD
	bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
	bsp_section_text_load_begin = LOADADDR (.text);
	bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;

	.robarrier : ALIGN_WITH_INPUT {
		. = ALIGN (bsp_section_robarrier_align);
	} > REGION_RODATA AT > REGION_RODATA

	.rodata : ALIGN_WITH_INPUT {
		bsp_section_rodata_begin = .;
		*(.rodata .rodata.* .gnu.linkonce.r.*)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.rodata1 : ALIGN_WITH_INPUT {
		*(.rodata1)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.ARM.extab : ALIGN_WITH_INPUT {
		*(.ARM.extab* .gnu.linkonce.armextab.*)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.ARM.exidx : ALIGN_WITH_INPUT {
		__exidx_start = .;
		*(.ARM.exidx* .gnu.linkonce.armexidx.*)
		__exidx_end = .;
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.eh_frame : ALIGN_WITH_INPUT {
		KEEP (*(.eh_frame))
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.gcc_except_table : ALIGN_WITH_INPUT {
		*(.gcc_except_table .gcc_except_table.*)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.tdata : ALIGN_WITH_INPUT {
		_TLS_Data_begin = .;
		*(.tdata .tdata.* .gnu.linkonce.td.*)
		_TLS_Data_end = .;
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.tbss : ALIGN_WITH_INPUT {
		_TLS_BSS_begin = .;
		*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
		_TLS_BSS_end = .;
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	_TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
	_TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
	_TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
	_TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
	_TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
	_TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
	.preinit_array : ALIGN_WITH_INPUT {
		PROVIDE_HIDDEN (__preinit_array_start = .);
		KEEP (*(.preinit_array))
		PROVIDE_HIDDEN (__preinit_array_end = .);
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.init_array : ALIGN_WITH_INPUT {
		PROVIDE_HIDDEN (__init_array_start = .);
		KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
		KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
		PROVIDE_HIDDEN (__init_array_end = .);
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.fini_array : ALIGN_WITH_INPUT {
		PROVIDE_HIDDEN (__fini_array_start = .);
		KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
		KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
		PROVIDE_HIDDEN (__fini_array_end = .);
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.data.rel.ro : ALIGN_WITH_INPUT {
		*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
		*(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.jcr : ALIGN_WITH_INPUT {
		KEEP (*(.jcr))
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.interp : ALIGN_WITH_INPUT {
		*(.interp)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.note.gnu.build-id : ALIGN_WITH_INPUT {
		*(.note.gnu.build-id)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.hash : ALIGN_WITH_INPUT {
		*(.hash)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.gnu.hash : ALIGN_WITH_INPUT {
		*(.gnu.hash)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.dynsym : ALIGN_WITH_INPUT {
		*(.dynsym)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.dynstr : ALIGN_WITH_INPUT {
		*(.dynstr)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.gnu.version : ALIGN_WITH_INPUT {
		*(.gnu.version)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.gnu.version_d : ALIGN_WITH_INPUT {
		*(.gnu.version_d)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.gnu.version_r : ALIGN_WITH_INPUT {
		*(.gnu.version_r)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.rel.dyn : ALIGN_WITH_INPUT {
		*(.rel.init)
		*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
		*(.rel.fini)
		*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
		*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
		*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
		*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
		*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
		*(.rel.ctors)
		*(.rel.dtors)
		*(.rel.got)
		*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
		PROVIDE_HIDDEN (__rel_iplt_start = .);
		*(.rel.iplt)
		PROVIDE_HIDDEN (__rel_iplt_end = .);
		PROVIDE_HIDDEN (__rela_iplt_start = .);
		PROVIDE_HIDDEN (__rela_iplt_end = .);
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.rela.dyn : ALIGN_WITH_INPUT {
		*(.rela.init)
		*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
		*(.rela.fini)
		*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
		*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
		*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
		*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
		*(.rela.ctors)
		*(.rela.dtors)
		*(.rela.got)
		*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
		*(.rela.rtemsroset*)
		*(.rela.rtemsrwset*)
		PROVIDE_HIDDEN (__rel_iplt_start = .);
		PROVIDE_HIDDEN (__rel_iplt_end = .);
		PROVIDE_HIDDEN (__rela_iplt_start = .);
		*(.rela.iplt)
		PROVIDE_HIDDEN (__rela_iplt_end = .);
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.rel.plt : ALIGN_WITH_INPUT {
		*(.rel.plt)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.rela.plt : ALIGN_WITH_INPUT {
		*(.rela.plt)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.plt : ALIGN_WITH_INPUT {
		*(.plt)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.iplt : ALIGN_WITH_INPUT {
		*(.iplt)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.dynamic : ALIGN_WITH_INPUT {
		*(.dynamic)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.tm_clone_table : ALIGN_WITH_INPUT {
		*(.tm_clone_table)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.got : ALIGN_WITH_INPUT {
		*(.got.plt) *(.igot.plt) *(.got) *(.igot)
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	.rtemsroset : ALIGN_WITH_INPUT {
		/* Special FreeBSD linker set sections */
		__start_set_sysctl_set = .;
		*(set_sysctl_*);
		__stop_set_sysctl_set = .;
		*(set_domain_*);
		*(set_pseudo_*);

		KEEP (*(SORT(.rtemsroset.*)))

		/*
		 * If requested, align the size of the rodata section to the
		 * next power of two to meet MPU region alignment requirements.
		 */
		. = DEFINED (bsp_align_text_and_rodata_end_to_power_of_2) ?
		    bsp_section_rodata_begin
		    + ALIGN (. - bsp_section_rodata_begin,
		    1 << LOG2CEIL (. - bsp_section_rodata_begin)) : .;

		bsp_section_rodata_end = .;
	} > REGION_RODATA AT > REGION_RODATA_LOAD
	bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
	bsp_section_rodata_load_begin = LOADADDR (.rodata);
	bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;

	.rwbarrier : ALIGN_WITH_INPUT {
		. = ALIGN (bsp_section_rwbarrier_align);
	} > REGION_DATA AT > REGION_DATA

	.vector : ALIGN_WITH_INPUT {
		bsp_section_vector_begin = .;
		. = . + DEFINED (bsp_vector_table_in_start_section) ? 0 : bsp_vector_table_size;
		bsp_section_vector_end = .;
	} > REGION_VECTOR AT > REGION_VECTOR
	bsp_section_vector_size = bsp_section_vector_end - bsp_section_vector_begin;
	bsp_vector_table_begin = DEFINED (bsp_vector_table_in_start_section) ? bsp_section_start_begin : bsp_section_vector_begin;
	bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size;

	.fast_text : ALIGN_WITH_INPUT {
		bsp_section_fast_text_begin = .;
		*(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_fast_text*)))
		bsp_section_fast_text_end = .;
	} > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
	bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
	bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
	bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;

	.fast_data : ALIGN_WITH_INPUT {
		bsp_section_fast_data_begin = .;
		*(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_fast_data*)))
		bsp_section_fast_data_end = .;
	} > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
	bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
	bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
	bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;

	.data : ALIGN_WITH_INPUT {
		bsp_section_data_begin = .;
		*(.data .data.* .gnu.linkonce.d.*)
		SORT(CONSTRUCTORS)
	} > REGION_DATA AT > REGION_DATA_LOAD
	.data1 : ALIGN_WITH_INPUT {
		*(.data1)
	} > REGION_DATA AT > REGION_DATA_LOAD
	.rtemsrwset : ALIGN_WITH_INPUT {
		KEEP (*(SORT(.rtemsrwset.*)))
		bsp_section_data_end = .;
	} > REGION_DATA AT > REGION_DATA_LOAD
	bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
	bsp_section_data_load_begin = LOADADDR (.data);
	bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;

	.bss : ALIGN_WITH_INPUT {
		bsp_section_bss_begin = .;
		*(.dynbss)
		*(.bss .bss.* .gnu.linkonce.b.*)
		*(COMMON)
		bsp_section_bss_end = .;
	} > REGION_BSS AT > REGION_BSS
	bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;

	.rtemsstack (NOLOAD) : ALIGN_WITH_INPUT {
		bsp_section_rtemsstack_begin = .;
		*(SORT_BY_ALIGNMENT (SORT_BY_NAME (.rtemsstack*)))
		bsp_section_rtemsstack_end = .;
	} > REGION_WORK AT > REGION_WORK
	bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;

	.noinit (NOLOAD) : ALIGN_WITH_INPUT {
		bsp_section_noinit_begin = .;
		*(.noinit*)
		bsp_section_noinit_end = .;
	} > REGION_WORK AT > REGION_WORK
	bsp_section_noinit_size = bsp_section_noinit_end - bsp_section_noinit_begin;

	.work : ALIGN_WITH_INPUT {
		/*
		 * The work section will occupy the remaining REGION_WORK region and
		 * contains the RTEMS work space and heap.
		 */
		bsp_section_work_begin = .;
		. += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
		bsp_section_work_end = .;
	} > REGION_WORK AT > REGION_WORK
	bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;

	.stack : ALIGN_WITH_INPUT {
		/*
		 * The stack section will occupy the remaining REGION_STACK region and may
		 * contain the task stacks.  Depending on the region distribution this
		 * section may be of zero size.
		 */
		bsp_section_stack_begin = .;
		. += ORIGIN (REGION_STACK) + LENGTH (REGION_STACK) - ABSOLUTE (.);
		bsp_section_stack_end = .;
	} > REGION_STACK AT > REGION_STACK
	bsp_section_stack_size = bsp_section_stack_end - bsp_section_stack_begin;

	.nocache : ALIGN_WITH_INPUT {
		bsp_section_nocache_begin = .;
		*(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_nocache*)))
		bsp_section_nocache_end = .;
	} > REGION_NOCACHE AT > REGION_NOCACHE_LOAD
	bsp_section_nocache_size = bsp_section_nocache_end - bsp_section_nocache_begin;
	bsp_section_nocache_load_begin = LOADADDR (.nocache);
	bsp_section_nocache_load_end = bsp_section_nocache_load_begin + bsp_section_nocache_size;

	.nocachenoload (NOLOAD) : ALIGN_WITH_INPUT {
		bsp_section_nocachenoload_begin = .;
		*(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_noload_nocache*)))
		bsp_section_nocacheheap_begin = .;
		. += ORIGIN (REGION_NOCACHE) + LENGTH (REGION_NOCACHE) - ABSOLUTE (.);
		bsp_section_nocacheheap_end = .;
		bsp_section_nocachenoload_end = .;
	} > REGION_NOCACHE AT > REGION_NOCACHE
	bsp_section_nocacheheap_size = bsp_section_nocacheheap_end - bsp_section_nocacheheap_begin;
	bsp_section_nocachenoload_size = bsp_section_nocachenoload_end - bsp_section_nocachenoload_begin;

	/* FIXME */
	RamBase = ORIGIN (REGION_WORK);
	RamSize = LENGTH (REGION_WORK);
	RamEnd = RamBase + RamSize;
	WorkAreaBase = bsp_section_work_begin;
	HeapSize = 0;

	/* Stabs debugging sections.  */
	.stab          0 : { *(.stab) }
	.stabstr       0 : { *(.stabstr) }
	.stab.excl     0 : { *(.stab.excl) }
	.stab.exclstr  0 : { *(.stab.exclstr) }
	.stab.index    0 : { *(.stab.index) }
	.stab.indexstr 0 : { *(.stab.indexstr) }
	.comment       0 : { *(.comment) }
	/* DWARF debug sections.
	   Symbols in the DWARF debugging sections are relative to the beginning
	   of the section so we begin them at 0.  */
	/* DWARF 1.  */
	.debug          0 : { *(.debug) }
	.line           0 : { *(.line) }
	/* GNU DWARF 1 extensions.  */
	.debug_srcinfo  0 : { *(.debug_srcinfo) }
	.debug_sfnames  0 : { *(.debug_sfnames) }
	/* DWARF 1.1 and DWARF 2.  */
	.debug_aranges  0 : { *(.debug_aranges) }
	.debug_pubnames 0 : { *(.debug_pubnames) }
	/* DWARF 2.  */
	.debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
	.debug_abbrev   0 : { *(.debug_abbrev) }
	.debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end) }
	.debug_frame    0 : { *(.debug_frame) }
	.debug_str      0 : { *(.debug_str) }
	.debug_loc      0 : { *(.debug_loc) }
	.debug_macinfo  0 : { *(.debug_macinfo) }
	/* SGI/MIPS DWARF 2 extensions.  */
	.debug_weaknames 0 : { *(.debug_weaknames) }
	.debug_funcnames 0 : { *(.debug_funcnames) }
	.debug_typenames 0 : { *(.debug_typenames) }
	.debug_varnames  0 : { *(.debug_varnames) }
	/* DWARF 3.  */
	.debug_pubtypes 0 : { *(.debug_pubtypes) }
	.debug_ranges   0 : { *(.debug_ranges) }
	/* DWARF 5.  */
	.debug_addr     0 : { *(.debug_addr) }
	.debug_line_str 0 : { *(.debug_line_str) }
	.debug_loclists 0 : { *(.debug_loclists) }
	.debug_macro    0 : { *(.debug_macro) }
	.debug_names    0 : { *(.debug_names) }
	.debug_rnglists 0 : { *(.debug_rnglists) }
	.debug_str_offsets 0 : { *(.debug_str_offsets) }
	.debug_sup      0 : { *(.debug_sup) }
	.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
	.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
	/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }

	/*
	 * This is a RTEMS specific section to catch all unexpected input
	 * sections.  In case you get an error like
	 *   "section `.unexpected_sections' will not fit in region
	 *   `UNEXPECTED_SECTIONS'"
	 * you have to figure out the offending input section and add it to the
	 * appropriate output section definition above.
	 */
	.unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
}