STARTUP(cygmon-crt0.o) ENTRY(__start) GROUP(-lcygmon -lc -lcygmon -lgcc) SEARCH_DIR(.) __DYNAMIC = 0; /* * Allocate the stack to be at the top of memory, since the stack * grows down */ PROVIDE (__stack = 0x500000); /* * Initalize some symbols to be zero so we can reference them in the * crt0 without core dumping. These functions are all optional, but * we do this so we can have our crt0 always use them if they exist. * This is so BSPs work better when using the crt0 installed with gcc. * We have to initalize them twice, so we multiple object file * formats, as some prepend an underscore. */ PROVIDE (hardware_init_hook = 0); PROVIDE (software_init_hook = 0); PROVIDE (__mem_start = 0x100000); PROVIDE (___mem_start = 0x100000); SECTIONS { . = 0x100000; .text : { _ftext = . ; *(.init) eprol = .; *(.text) PROVIDE (__runtime_reloc_start = .); *(.rel.sdata) PROVIDE (__runtime_reloc_stop = .); *(.fini) . = ALIGN(4); __CTOR_LIST__ = .; CONSTRUCTORS LONG(-1) *(.ctors) LONG(0) __CTOR_END__ = .; __DTOR_LIST__ = .; LONG(-1) *(.dtors) LONG(0) __DTOR_END__ = .; PROVIDE(_etext = .); PROVIDE(__etext = .); } . = .; .rdata : { *(.rdata) } .rodata : { *(.rodata) *(.rodata.*) } .eh_frame : { PROVIDE (__EH_FRAME_BEGIN__ = .); *(.eh_frame) PROVIDE (__EH_FRAME_END__ = .); } _fdata = ALIGN(16); .data : { *(.data) *(.gcc_except_table) *(.gcc_exc) } . = ALIGN(8); _gp = . + 0x8000; __global = . + 0x8000; .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } .sdata : { *(.sdata) } . = ALIGN(4); PROVIDE(_edata = .); PROVIDE(__edata = .); fbss = .; _fbss = .; .sbss : { PROVIDE(__bss_start = .); *(.sbss) *(.scommon) } .bss : { *(.bss) *(COMMON) PROVIDE(__bss_end = .); } PROVIDE(_end = .); PROVIDE(__end = .); }