]>
Commit | Line | Data |
---|---|---|
5835f2cf CF |
1 | OUTPUT_FORMAT(pei-i386) |
2 | SEARCH_DIR(/cygnus/i686-pc-cygwin/lib/w32api); SEARCH_DIR(/cygnus/i686-pc-cygwin/lib); | |
3 | ENTRY(_mainCRTStartup) | |
4 | SECTIONS | |
5 | { | |
6 | .text __image_base__ + __section_alignment__ : | |
7 | { | |
8 | *(.init) | |
9 | *(.text) | |
10 | *(SORT(.text$*)) | |
11 | *(.glue_7t) | |
12 | *(.glue_7) | |
13 | ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; | |
6bda8def | 14 | LONG (-1); *(SORT(.ctors.*)); *(.ctors); *(.ctor); LONG (0); |
5835f2cf | 15 | ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; |
6bda8def | 16 | LONG (-1); *(SORT(.dtors.*)); *(.dtors); *(.dtor); LONG (0); |
5835f2cf CF |
17 | *(.fini) |
18 | /* ??? Why is .gcc_exc here? */ | |
19 | *(.gcc_exc) | |
20 | etext = .; | |
21 | *(.gcc_except_table) | |
22 | } | |
5e2ccd4b | 23 | /* The Cygwin DLL uses a section to avoid copying certain data |
5835f2cf CF |
24 | on fork. This used to be named ".data". The linker used |
25 | to include this between __data_start__ and __data_end__, but that | |
26 | breaks building the cygwin32 dll. Instead, we name the section | |
27 | ".data_cygwin_nocopy" and explictly include it after __data_end__. */ | |
28 | .data BLOCK(__section_alignment__) : | |
29 | { | |
30 | __data_start__ = . ; | |
31 | *(.data) | |
32 | *(.data2) | |
33 | *(SORT(.data$*)) | |
34 | __data_end__ = . ; | |
5ac73dfe | 35 | *(.data_cygwin_nocopy) |
5835f2cf CF |
36 | } |
37 | .rdata BLOCK(__section_alignment__) : | |
38 | { | |
39 | *(.rdata) | |
40 | *(SORT(.rdata$*)) | |
41 | *(.eh_frame) | |
42 | } | |
43 | .pdata BLOCK(__section_alignment__) : | |
44 | { | |
45 | *(.pdata) | |
46 | } | |
47 | .bss BLOCK(__section_alignment__) : | |
48 | { | |
49 | __bss_start__ = . ; | |
50 | *(.bss) | |
5ac73dfe | 51 | *(COMMON) |
5835f2cf CF |
52 | __bss_end__ = . ; |
53 | } | |
54 | .edata BLOCK(__section_alignment__) : | |
55 | { | |
56 | *(.edata) | |
57 | } | |
58 | /DISCARD/ : | |
59 | { | |
60 | *(.debug$S) | |
61 | *(.debug$T) | |
62 | *(.debug$F) | |
63 | *(.drectve) | |
64 | } | |
65 | .idata BLOCK(__section_alignment__) : | |
66 | { | |
67 | /* This cannot currently be handled with grouped sections. | |
68 | See pe.em:sort_sections. */ | |
69 | SORT(*)(.idata$2) | |
70 | SORT(*)(.idata$3) | |
71 | /* These zeroes mark the end of the import list. */ | |
72 | LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); | |
73 | SORT(*)(.idata$4) | |
74 | SORT(*)(.idata$5) | |
75 | SORT(*)(.idata$6) | |
76 | SORT(*)(.idata$7) | |
77 | } | |
78 | .CRT BLOCK(__section_alignment__) : | |
79 | { | |
80 | *(SORT(.CRT$*)) | |
81 | } | |
82 | .endjunk BLOCK(__section_alignment__) : | |
83 | { | |
84 | /* end is deprecated, don't use it */ | |
85 | end = .; | |
86 | _end = .; | |
87 | __end__ = .; | |
88 | } | |
89 | .rsrc BLOCK(__section_alignment__) : | |
90 | { | |
91 | *(.rsrc) | |
92 | *(SORT(.rsrc$*)) | |
93 | } | |
94 | .reloc BLOCK(__section_alignment__) : | |
95 | { | |
96 | *(.reloc) | |
97 | } | |
98 | .stab BLOCK(__section_alignment__) (NOLOAD) : | |
99 | { | |
100 | [ .stab ] | |
101 | } | |
102 | .stabstr BLOCK(__section_alignment__) (NOLOAD) : | |
103 | { | |
104 | [ .stabstr ] | |
105 | } | |
106 | .cygheap BLOCK(64 * 1024) : | |
107 | { | |
60136eb0 | 108 | __system_dlls__ = ABSOLUTE(.) ; |
5835f2cf | 109 | __cygheap_start = ABSOLUTE(.) ; |
cf77faef | 110 | } |
5835f2cf | 111 | } |