Cygwin: add newgrp release notes
[newlib-cygwin.git] / winsup / cygwin / cygwin.sc.in
blob69526f5d8af60902a39523e16a542a967bbf279f
1 #ifdef __x86_64__
2 OUTPUT_FORMAT(pei-x86-64)
3 SEARCH_DIR("/usr/x86_64-pc-cygwin/lib/w32api"); SEARCH_DIR("=/usr/lib/w32api");
4 #else
5 #error unimplemented for this target
6 #endif
7 #define __CONCAT1(a,b) a##b
8 #define __CONCAT(a,b) __CONCAT1(a,b)
9 #define _SYM(x) __CONCAT(__USER_LABEL_PREFIX__, x)
10 SECTIONS
12 .text __image_base__ + __section_alignment__ :
14 *(.init)
15 *(.text)
16 *(.text.*)
17 *(SORT(.text$*))
18 *(.glue_7t)
19 *(.glue_7)
20 #ifdef __x86_64__
21 . = ALIGN(8);
22 ___CTOR_LIST__ = .; __CTOR_LIST__ = .;
23 LONG (-1); LONG (-1); *(SORT(.ctors.*)); *(.ctors); *(.ctor); LONG (0); LONG (0);
24 ___DTOR_LIST__ = .; __DTOR_LIST__ = .;
25 LONG (-1); LONG (-1); *(SORT(.dtors.*)); *(.dtors); *(.dtor); LONG (0); LONG (0);
26 #else
27 ___CTOR_LIST__ = .; __CTOR_LIST__ = .;
28 LONG (-1); *(SORT(.ctors.*)); *(.ctors); *(.ctor); LONG (0);
29 ___DTOR_LIST__ = .; __DTOR_LIST__ = .;
30 LONG (-1); *(SORT(.dtors.*)); *(.dtors); *(.dtor); LONG (0);
31 #endif
32 *(.fini)
33 /* ??? Why is .gcc_exc here? */
34 *(.gcc_exc)
35 etext = .;
36 *(.gcc_except_table)
38 .autoload_text ALIGN(__section_alignment__) :
40 *(.*_autoload_text);
42 /* The Cygwin DLL uses a section to avoid copying certain data
43 on fork. This used to be named ".data$nocopy". The linker used
44 to include this between __data_start__ and __data_end__, but that
45 breaks building the cygwin dll. Instead, we name the section
46 ".data_cygwin_nocopy" and explicitly include it after __data_end__. */
47 .data ALIGN(__section_alignment__) :
49 __data_start__ = .;
50 *(.data)
51 *(.data2)
52 *(SORT(.data$*))
53 __data_end__ = .;
54 *(.data_cygwin_nocopy)
56 .rdata ALIGN(__section_alignment__) :
58 *(.rdata)
59 *(SORT(.rdata$*))
60 *(.rdata_cygwin_nocopy)
61 ___RUNTIME_PSEUDO_RELOC_LIST__ = .;
62 __RUNTIME_PSEUDO_RELOC_LIST__ = .;
63 *(.rdata_runtime_pseudo_reloc)
64 ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;
65 __RUNTIME_PSEUDO_RELOC_LIST_END__ = .;
67 .eh_frame ALIGN(__section_alignment__) :
69 *(.eh_frame*)
71 .pdata ALIGN(__section_alignment__) :
73 *(.pdata*)
75 #ifdef __x86_64__
76 .xdata ALIGN(__section_alignment__) :
78 *(.xdata*)
80 #endif
81 .bss ALIGN(__section_alignment__) :
83 __bss_start__ = .;
84 *(.bss)
85 *(COMMON)
86 __bss_end__ = .;
88 .edata ALIGN(__section_alignment__) :
90 *(.edata)
92 .reloc BLOCK(__section_alignment__) :
94 *(.reloc)
96 .cygwin_dll_common ALIGN(__section_alignment__):
98 *(.cygwin_dll_common)
100 .idata ALIGN(__section_alignment__) :
102 /* This cannot currently be handled with grouped sections.
103 See pe.em:sort_sections. */
104 SORT(*)(.idata$2)
105 SORT(*)(.idata$3)
106 /* These zeroes mark the end of the import list. */
107 LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
108 SORT(*)(.idata$4)
109 SORT(*)(.idata$5)
110 SORT(*)(.idata$6)
111 SORT(*)(.idata$7)
112 . = ALIGN(16);
114 .rsrc BLOCK(__section_alignment__) :
116 *(.rsrc)
117 *(SORT(.rsrc$*))
119 /DISCARD/ :
121 *(.debug$S)
122 *(.debug$T)
123 *(.debug$F)
124 *(.drectve)
126 .stab ALIGN(__section_alignment__) (NOLOAD) :
128 *(.stab)
130 .stabstr ALIGN(__section_alignment__) (NOLOAD) :
132 *(.stabstr)
134 /* DWARF 1.1 and DWARF 2 */
135 .debug_aranges ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_aranges) }
136 .debug_pubnames ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_pubnames) }
137 .debug_pubtypes ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) }
138 /* DWARF 2 */
139 .debug_info ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_info) }
140 .debug_abbrev ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_abbrev) }
141 .debug_line ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_line) }
142 .debug_frame ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_frame) }
143 .debug_str ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_str) }
144 .debug_loc ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_loc) }
145 .debug_macinfo ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) }
146 /* SGI/MIPS DWARF 2 extensions. */
147 .debug_weaknames ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_weaknames) }
148 .debug_funcnames ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_funcnames) }
149 .debug_typenames ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_typenames) }
150 .debug_varnames ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_varnames) }
151 .debug_macro ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macro) }
152 /* DWARF 3 */
153 .debug_ranges ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_ranges) }
154 /* DWARF 4, merged back into .debug_info with DWARF 5 */
155 .debug_types ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_types .gnu.linkonce.wt.*) }
156 /* DWARF 5 */
157 .debug_loclists ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_loclists) }
158 .debug_rnglists ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_rnglists) }
159 .debug_line_str ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_line_str) }