SEARCH_DIR( . )
__DYNAMIC = 0;

/*
* Allocate the stack to be at the top of memory,
* since the stack grows down.
*/
PROVIDE (__stack = 0);
/*PROVIDE (__global = 0);*/

PROVIDE ( hardware_init_hook = 0);
PROVIDE ( software_init_hook = 0);

SECTIONS
{
	.text : {
		_ftext = . ;
		*( .init )
		eprol = . ;
		*( .text )
		*( .mips16.fn.* )
		*( .mips16.call.*)
		PROVIDE (__runtime_reloc_start = .);
		*(.rel.sdata)
		PROVIDE (__runtime_reloc_stop = .);
		*(.fini)
	}
	. = . ;
	.glue_7t : {

	}
	. = . ;
	.glue_7 : {

	}
	. = . ;
	.rodata : {
		*(.rodata)
		etext = .;
		_etext = .;
	}
	. = ALIGN( 16 );
	.data : {
		_fdata = . ;
		*( .data )
		CONSTRUCTORS
	}
	. = ALIGN( 16 );
	. = . ;
	.rdata : {
		*(.rdata)
	}
	. = ALIGN( 8 );
	_gp = . + 0x8000;
	__global = _gp;
	.lit8 : {
		*(.lit8)
	}
	.lit4 : {
		*(.lit4)
	}
	.sdata : {
		*(.sdata)
	}
	. = ALIGN( 4 );
	edata = .;
	__builtin_delete = .;
	_edata = .;
	_fbss = .;
	.sbss : {
		*(.sbss)
		*(.scommon)
	}
	. = ALIGN( 4 );
	.bss : {
		_bss_start = .;
		*(.bss)
		*(COMMON)
	}
	. = ALIGN( 4 );
	end = .;
	_end = .;
	_freeramStart = _end;
	_freeramEnd = _end + 0x1fffff;
	. = ALIGN( 4 );
	end1 = .;
	_stackBottom = 0xc005000 ;
	/* 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)}
}
