newlib/libgloss/i386/cygmon.ld
Jeff Johnston 664252b754 2002-10-25 Bernd Schmidt <bernds@redhat.com>
* i386/cygmon.ld: Add entry for .gcc_except_table.

2000-10-25  Mark Salter  <msalter@redhat.com>

        * i386/cygmon-crt0.S: Use __USER_LABEL_PREFIX__ for symbols. Always
        use __start for start symbol.
        * i386/cygmon-salib.c: Don't build __do_global_[cd]tors for AOUT.
        Disable file I/O extensions to make Plum Hall happy.
        * i386/cygmon.ld: Set __start as entry point.
        * i386/Makefile.in: Support IS_AOUT.
        * i386/configure.in: Support IS_AOUT.
        * i386/configure: Regenerated.
        * i386/cygmon-salib.c:
        * i386/cygmon-gmon.c (_mcount): It's _etext.
2002-10-25 19:18:46 +00:00

91 lines
1.7 KiB
Plaintext

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)
__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)
}
_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 = .);
}