[444] | 1 | OUTPUT_FORMAT("pei-mcore-big", "pei-mcore-big", |
---|
| 2 | "pei-mcore-little") |
---|
| 3 | GROUP(-lc -lcmb -lgcc) |
---|
| 4 | ENTRY(_mainCRTStartup) |
---|
| 5 | SECTIONS |
---|
| 6 | { |
---|
| 7 | .text 0x2f000000 : |
---|
| 8 | { |
---|
| 9 | *(.init) |
---|
| 10 | *(.text) |
---|
| 11 | *(SORT(.text$*)) |
---|
| 12 | *(.glue_7t) |
---|
| 13 | *(.glue_7) |
---|
| 14 | ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; |
---|
| 15 | LONG (-1); *(.ctors); *(.ctor); LONG (0); |
---|
| 16 | ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; |
---|
| 17 | LONG (-1); *(.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 | } |
---|
| 51 | .edata BLOCK(__section_alignment__) : |
---|
| 52 | { |
---|
| 53 | *(.edata) |
---|
| 54 | } |
---|
| 55 | /DISCARD/ : |
---|
| 56 | { |
---|
| 57 | *(.debug$S) |
---|
| 58 | *(.debug$T) |
---|
| 59 | *(.debug$F) |
---|
| 60 | *(.drectve) |
---|
| 61 | } |
---|
| 62 | .idata BLOCK(__section_alignment__) : |
---|
| 63 | { |
---|
| 64 | /* This cannot currently be handled with grouped sections. |
---|
| 65 | See pe.em:sort_sections. */ |
---|
| 66 | SORT(*)(.idata$2) |
---|
| 67 | SORT(*)(.idata$3) |
---|
| 68 | /* These zeroes mark the end of the import list. */ |
---|
| 69 | LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); |
---|
| 70 | SORT(*)(.idata$4) |
---|
| 71 | SORT(*)(.idata$5) |
---|
| 72 | SORT(*)(.idata$6) |
---|
| 73 | SORT(*)(.idata$7) |
---|
| 74 | } |
---|
| 75 | .CRT BLOCK(__section_alignment__) : |
---|
| 76 | { |
---|
| 77 | *(SORT(.CRT$*)) |
---|
| 78 | } |
---|
| 79 | .endjunk BLOCK(__section_alignment__) : |
---|
| 80 | { |
---|
| 81 | /* end is deprecated, don't use it */ |
---|
| 82 | end = .; |
---|
| 83 | _end = .; |
---|
| 84 | __end__ = .; |
---|
| 85 | } |
---|
| 86 | .reloc BLOCK(__section_alignment__) : |
---|
| 87 | { |
---|
| 88 | *(.reloc) |
---|
| 89 | } |
---|
| 90 | .rsrc BLOCK(__section_alignment__) : |
---|
| 91 | { |
---|
| 92 | *(.rsrc) |
---|
| 93 | *(SORT(.rsrc$*)) |
---|
| 94 | } |
---|
| 95 | .stab BLOCK(__section_alignment__) (NOLOAD) : |
---|
| 96 | { |
---|
| 97 | [ .stab ] |
---|
| 98 | } |
---|
| 99 | .stabstr BLOCK(__section_alignment__) (NOLOAD) : |
---|
| 100 | { |
---|
| 101 | [ .stabstr ] |
---|
| 102 | } |
---|
| 103 | .stack 0x2f0ffffc : |
---|
| 104 | { |
---|
| 105 | _stack = .; |
---|
| 106 | *(.stack) |
---|
| 107 | } |
---|
| 108 | } |
---|