diff options
author | Alexis211 <alexis211@gmail.com> | 2009-12-18 16:22:58 +0100 |
---|---|---|
committer | Alexis211 <alexis211@gmail.com> | 2009-12-18 16:22:58 +0100 |
commit | d04645198d648a17ccb83e70aa5e6d60a06121aa (patch) | |
tree | 4ee3203112c2fda42a85ec00f3f78eee14689869 /Unix/i686-elf/lib/cygmon.ld | |
parent | 5f87c447bdcb82beacbfb930942fe9995dcdb60f (diff) | |
download | Melon-d04645198d648a17ccb83e70aa5e6d60a06121aa.tar.gz Melon-d04645198d648a17ccb83e70aa5e6d60a06121aa.zip |
[nonworking commit] Started porting newlib
Diffstat (limited to 'Unix/i686-elf/lib/cygmon.ld')
-rw-r--r-- | Unix/i686-elf/lib/cygmon.ld | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/Unix/i686-elf/lib/cygmon.ld b/Unix/i686-elf/lib/cygmon.ld new file mode 100644 index 0000000..ae0d908 --- /dev/null +++ b/Unix/i686-elf/lib/cygmon.ld @@ -0,0 +1,101 @@ +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 = .); +} |