summaryrefslogblamecommitdiffstats
path: root/c/src/lib/libbsp/arm/armulator/startup/linkcmds
blob: 879c2aa218c7093fd8346994995d92ae744daf13 (plain) (tree)


















                                                       
                    
                           










                                            
















                                                      
               



















                                                               































                                                                          




                               
/*
 *  $Id$
 */

/*
 * Declare some sizes.
 */
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
_RamSize = DEFINED(_RamSize) ? _RamSize : 1M;
_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x10000;
_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;

SECTIONS
{ 
    . = 0x8000;
    .text : 
    { 
	 CREATE_OBJECT_SYMBOLS
	*(.text) 
	*(.rodata*) 
        *(.gnu.linkonce.r*)

        /*
         * Special FreeBSD sysctl sections.
         */
        . = ALIGN (16);
        __start_set_sysctl_set = .;
        *(set_sysctl_*);
        __stop_set_sysctl_set = ABSOLUTE(.);
        *(set_domain_*);
        *(set_pseudo_*);

	 _etext = .;
	
	___CTOR_LIST__ = .;
	LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
	*(.ctors)
	LONG(0)
	___CTOR_END__ = .;
	___DTOR_LIST__ = .;
	LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
	*(.dtors)
	LONG(0)
	___DTOR_END__ = .;
    }  
    . = ALIGN(256) + (. & (256 - 1));
    .data :
    { 
 	*(.data) 
	*(.jcr)
	CONSTRUCTORS
	 _edata = .;
    }  
    .bss SIZEOF(.data) + ADDR(.data):
    { 
	 _bss_start = .;
	_clear_start = .;
	*(.bss)	 
	*(COMMON) 
	. = ALIGN (64);
	_stack_init = .;
	. += _StackSize;
	_clear_end = .;
	_WorkspaceBase = .;
	. += 512K;	/* reserve some memory for workspace */
	_HeapBase = .;
	. += _HeapSize;	/* reserve some memory for heap */
	 _end = .;
	 __end = .;
    } 
/* XXX */
  /* These are needed for ELF backends which have not yet been
     converted to the new style linker.  */
  .stab 0 : { *(.stab) }
  .stabstr 0 : { *(.stabstr) }
  /* 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) }
  .debug_abbrev   0 : { *(.debug_abbrev) }
  .debug_line     0 : { *(.debug_line) }
  .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) }
  /* These must appear regardless of  .  */

} 

HeapBase = _HeapBase;
HeapSize = _HeapSize;
WorkspaceBase = _WorkspaceBase;