(U-0002195D): Add `ideographic-structure'; add `sound@ja/on'; add
[chise/xemacs-chise.git.1] / src / s / cygwin.sc
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 }