2 OUTPUT_FORMAT(pei-x86-64
)
3 SEARCH_DIR("/usr/x86_64-pc-cygwin/lib/w32api"); SEARCH_DIR("=/usr/lib/w32api");
5 #error unimplemented
for this target
7 #
define __CONCAT1(a
,b
) a##b
8 #
define __CONCAT(a
,b
) __CONCAT1(a
,b
)
9 #
define _SYM(x
) __CONCAT(__USER_LABEL_PREFIX__
, x
)
12 .text __image_base__
+ __section_alignment__
:
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);
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);
33 /* ??? Why is
.gcc_exc here?
*/
38 .autoload_text
ALIGN(__section_alignment__
) :
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__
) :
54 *(.data_cygwin_nocopy
)
56 .rdata
ALIGN(__section_alignment__
) :
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__
) :
71 .pdata
ALIGN(__section_alignment__
) :
76 .xdata
ALIGN(__section_alignment__
) :
81 .bss
ALIGN(__section_alignment__
) :
88 .edata
ALIGN(__section_alignment__
) :
92 .reloc
BLOCK(__section_alignment__
) :
96 .cygwin_dll_common
ALIGN(__section_alignment__
):
100 .idata
ALIGN(__section_alignment__
) :
102 /* This cannot currently be handled
with grouped sections
.
103 See pe
.em
:sort_sections
. */
106 /* These zeroes
mark the
end of the
import list. */
107 LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
114 .rsrc
BLOCK(__section_alignment__
) :
126 .stab
ALIGN(__section_alignment__
) (NOLOAD
) :
130 .stabstr
ALIGN(__section_alignment__
) (NOLOAD
) :
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
) }
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
) }
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
.*) }
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
) }