Changes for 4.5.0 snapshot
[newlib-cygwin.git] / libgloss / i386 / cygmon.ld
blobae0d9081326502172ad783d90e889eb6d77f29c6
1 STARTUP(cygmon-crt0.o)
2 ENTRY(__start)
3 GROUP(-lcygmon -lc -lcygmon -lgcc)
4 SEARCH_DIR(.)
5 __DYNAMIC  =  0;
7 /*
8  * Allocate the stack to be at the top of memory, since the stack
9  * grows down
10  */
11 PROVIDE (__stack = 0x500000);
14  * Initalize some symbols to be zero so we can reference them in the
15  * crt0 without core dumping. These functions are all optional, but
16  * we do this so we can have our crt0 always use them if they exist. 
17  * This is so BSPs work better when using the crt0 installed with gcc.
18  * We have to initalize them twice, so we multiple object file
19  * formats, as some prepend an underscore.
20  */
21 PROVIDE (hardware_init_hook = 0);
22 PROVIDE (software_init_hook = 0);
23 PROVIDE (__mem_start = 0x100000);
24 PROVIDE (___mem_start = 0x100000);
25 SECTIONS
26 {       
27   . = 0x100000;
28   .text : {
29      _ftext = . ;
30     *(.init)
31      eprol  =  .;
32     *(.text)
33     PROVIDE (__runtime_reloc_start = .);
34     *(.rel.sdata)
35     PROVIDE (__runtime_reloc_stop = .);
36     *(.fini)
37     . = ALIGN(4);
38      __CTOR_LIST__ = .;
39     CONSTRUCTORS
40     LONG(-1)
41     *(.ctors)
42     LONG(0)
43     __CTOR_END__ = .;
44     __DTOR_LIST__ = .;
45     LONG(-1)
46     *(.dtors)
47      LONG(0)
48     __DTOR_END__ = .;
49     PROVIDE(_etext  =  .);
50     PROVIDE(__etext  =  .);
51   }
52   . = .;
53   .rdata : {
54     *(.rdata)
55   }
56   .rodata : {
57     *(.rodata)
58     *(.rodata.*)
59   }
60   .eh_frame :
61   {
62     PROVIDE (__EH_FRAME_BEGIN__ = .);
63     *(.eh_frame)
64     PROVIDE (__EH_FRAME_END__ = .);
65   }
66   _fdata = ALIGN(16);
67   .data : {
68     *(.data)
69     *(.gcc_except_table)
70     *(.gcc_exc)
71   }
72   . = ALIGN(8);
73   _gp = . + 0x8000;
74   __global = . + 0x8000;
75   .lit8 : {
76     *(.lit8)
77   }
78   .lit4 : {
79     *(.lit4)
80   }
81   .sdata : {
82     *(.sdata)
83   }
84   . = ALIGN(4);
85    PROVIDE(_edata  =  .);
86    PROVIDE(__edata  =  .);
87    fbss = .;
88    _fbss = .;
89   .sbss : {
90     PROVIDE(__bss_start = .);
91     *(.sbss)
92     *(.scommon)
93   }
94   .bss : {
95     *(.bss)
96     *(COMMON)
97     PROVIDE(__bss_end = .);
98   }
99   PROVIDE(_end = .);
100   PROVIDE(__end = .);