-/* modified from /usr/i586-mingw32msvc/lib/ldscripts/i386pe.x */
-OUTPUT_FORMAT(pei-i386)
-SEARCH_DIR("/usr/i586-mingw32msvc/lib");
-SECTIONS
-{
- /* Make the virtual address and file offset synced if the alignment is
- lower than the target page size. */
- . = SIZEOF_HEADERS;
- . = ALIGN(__section_alignment__);
- .text __image_base__ + (__section_alignment__):
- {
- StarCraft.o(.text)
- }
- .rdata 0x4fe000:
- {
- StarCraft.o(_rdata)
- }
- .data 0x50c000:
- {
- StarCraft.o(.data)
- }
- .text2 BLOCK(__section_alignment__) :
- {
- *(.init)
- *(.text)
- *(SORT(.text$*))
- *(.text.*)
- *(.glue_7t)
- *(.glue_7)
- ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
- LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0);
- ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
- LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);
- *(.fini)
- /* ??? Why is .gcc_exc here? */
- *(.gcc_exc)
- PROVIDE (etext = .);
- *(.gcc_except_table)
- }
- .rdata2 BLOCK(__section_alignment__) :
- {
- *(.rdata)
- *(SORT(.rdata$*))
- ___RUNTIME_PSEUDO_RELOC_LIST__ = .;
- __RUNTIME_PSEUDO_RELOC_LIST__ = .;
- *(.rdata_runtime_pseudo_reloc)
- ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;
- __RUNTIME_PSEUDO_RELOC_LIST_END__ = .;
- }
- /* The Cygwin32 library uses a section to avoid copying certain data
- on fork. This used to be named ".data". The linker used
- to include this between __data_start__ and __data_end__, but that
- breaks building the cygwin32 dll. Instead, we name the section
- ".data_cygwin_nocopy" and explictly include it after __data_end__. */
- .data2 BLOCK(__section_alignment__) :
- {
- __data_start__ = . ;
- *(.data)
- *(.data2)
- *(SORT(.data$*))
- *(.jcr)
- __data_end__ = . ;
- *(.data_cygwin_nocopy)
- }
- .eh_frame BLOCK(__section_alignment__) :
- {
- *(.eh_frame)
- }
- .pdata BLOCK(__section_alignment__) :
- {
- *(.pdata)
- }
- .bss BLOCK(__section_alignment__) :
- {
- __bss_start__ = . ;
- *(.bss)
- *(COMMON)
- __bss_end__ = . ;
- }
- .edata BLOCK(__section_alignment__) :
- {
- *(.edata)
- }
- /DISCARD/ :
- {
- *(.debug$S)
- *(.debug$T)
- *(.debug$F)
- *(.drectve)
- }
- .idata BLOCK(__section_alignment__) :
- {
- /* This cannot currently be handled with grouped sections.
- See pe.em:sort_sections. */
- SORT(*)(.idata$2)
- SORT(*)(.idata$3)
- /* These zeroes mark the end of the import list. */
- LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
- SORT(*)(.idata$4)
- SORT(*)(.idata$5)
- SORT(*)(.idata$6)
- SORT(*)(.idata$7)
- }
- .CRT BLOCK(__section_alignment__) :
- {
- ___crt_xc_start__ = . ;
- *(SORT(.CRT$XC*)) /* C initialization */
- ___crt_xc_end__ = . ;
- ___crt_xi_start__ = . ;
- *(SORT(.CRT$XI*)) /* C++ initialization */
- ___crt_xi_end__ = . ;
- ___crt_xl_start__ = . ;
- *(SORT(.CRT$XL*)) /* TLS callbacks */
- /* ___crt_xl_end__ is defined in the TLS Directory support code */
- ___crt_xp_start__ = . ;
- *(SORT(.CRT$XP*)) /* Pre-termination */
- ___crt_xp_end__ = . ;
- ___crt_xt_start__ = . ;
- *(SORT(.CRT$XT*)) /* Termination */
- ___crt_xt_end__ = . ;
- }
- .tls BLOCK(__section_alignment__) :
- {
- ___tls_start__ = . ;
- *(.tls)
- *(.tls$)
- *(SORT(.tls$*))
- ___tls_end__ = . ;
- }
- .endjunk BLOCK(__section_alignment__) :
- {
- /* end is deprecated, don't use it */
- PROVIDE (end = .);
- PROVIDE ( _end = .);
- __end__ = .;
- }
- .rsrc BLOCK(__section_alignment__) :
- {
- *(.rsrc)
- *(SORT(.rsrc$*))
- }
- .reloc BLOCK(__section_alignment__) :
- {
- *(.reloc)
- }
- .stab BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.stab)
- }
- .stabstr BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.stabstr)
- }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section. Unlike other targets that fake this by putting the
- section VMA at 0, the PE format will not allow it. */
- /* DWARF 1.1 and DWARF 2. */
- .debug_aranges BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_aranges)
- }
- .debug_pubnames BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_pubnames)
- }
- .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_pubtypes)
- }
- /* DWARF 2. */
- .debug_info BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_info) *(.gnu.linkonce.wi.*)
- }
- .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_abbrev)
- }
- .debug_line BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_line)
- }
- .debug_frame BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_frame)
- }
- .debug_str BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_str)
- }
- .debug_loc BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_loc)
- }
- .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_macinfo)
- }
- /* SGI/MIPS DWARF 2 extensions. */
- .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_weaknames)
- }
- .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_funcnames)
- }
- .debug_typenames BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_typenames)
- }
- .debug_varnames BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_varnames)
- }
- /* DWARF 3. */
- .debug_ranges BLOCK(__section_alignment__) (NOLOAD) :
- {
- *(.debug_ranges)
- }
-}