]> sourceware.org Git - newlib-cygwin.git/blame - winsup/cygwin/cygwin.sc
* cygwin.sc: Add recent changes from ld sources.
[newlib-cygwin.git] / winsup / cygwin / cygwin.sc
CommitLineData
5835f2cf
CF
1OUTPUT_FORMAT(pei-i386)
2SEARCH_DIR(/cygnus/i686-pc-cygwin/lib/w32api); SEARCH_DIR(/cygnus/i686-pc-cygwin/lib);
3ENTRY(_mainCRTStartup)
4SECTIONS
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}
This page took 0.061117 seconds and 5 git commands to generate.