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