[TCPIP DRIVER]
[reactos.git] / ntoskrnl / ntoskrnl_i386.lnk
1 OUTPUT_FORMAT(pei-i386)
2 ENTRY(_mainCRTStartup)
3 SECTIONS
4 {
5 .text __image_base__ + __section_alignment__ :
6 {
7 __text_start__ = .;
8 *(.init)
9 *(.text)
10 *(SORT(.text$*))
11 *(.glue_7t)
12 *(.glue_7)
13 ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
14 LONG (-1); *(.ctors); *(.ctor); LONG (0);
15 ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
16 LONG (-1); *(.dtors); *(.dtor); LONG (0);
17 *(.fini)
18 /* ??? Why is .gcc_exc here? */
19 *(.gcc_exc)
20 __text_end__ = .;
21 *(.gcc_except_table)
22 }
23 /* The Cygwin32 library uses a section to avoid copying certain data
24 on fork. This used to be named ".data". The linker used
25 to include this between __data_start__ and __data_end__, but that
26 breaks building the cygwin32 dll. Instead, we name the section
27 ".data_cygwin_nocopy" and explictly include it after __data_end__. */
28 .data BLOCK(__section_alignment__) :
29 {
30 __data_start__ = . ;
31 *(.data)
32 *(.data2)
33 *(SORT(.data$*))
34 __data_end__ = . ;
35 *(.data_cygwin_nocopy)
36 }
37 .rdata BLOCK(__section_alignment__) :
38 {
39 *(.rdata)
40 *(SORT(.rdata$*))
41 *(.eh_frame)
42 }
43 .edata BLOCK(__section_alignment__) :
44 {
45 *(.edata)
46 }
47
48 .idata BLOCK(__section_alignment__) :
49 {
50 /* This cannot currently be handled with grouped sections.
51 See pe.em:sort_sections. */
52 SORT(*)(.idata$2)
53 SORT(*)(.idata$3)
54 /* These zeroes mark the end of the import list. */
55 LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
56 SORT(*)(.idata$4)
57 SORT(*)(.idata$5)
58 SORT(*)(.idata$6)
59 SORT(*)(.idata$7)
60 }
61 .CRT BLOCK(__section_alignment__) :
62 {
63 *(SORT(.CRT$*))
64 }
65 .rsrc BLOCK(__section_alignment__) :
66 {
67 *(.rsrc)
68 *(SORT(.rsrc$*))
69 }
70 .bss BLOCK(__section_alignment__) :
71 {
72 __bss_start__ = . ;
73 *(.bss)
74 *(COMMON)
75 __bss_end__ = . ;
76 }
77 .reloc BLOCK(__section_alignment__) :
78 {
79 *(.reloc)
80 /* These zeroes mark the end of the reloc section. */
81 LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
82 }
83 .debug_aranges BLOCK(__section_alignment__) :
84 {
85 *(.debug_aranges)
86 }
87 .debug_abbrev BLOCK(__section_alignment__) :
88 {
89 *(.debug_abbrev)
90 }
91 .debug_frame BLOCK(__section_alignment__) :
92 {
93 *(.debug_frame)
94 }
95 .debug_info BLOCK(__section_alignment__) :
96 {
97 *(.debug_info)
98 }
99 .debug_line BLOCK(__section_alignment__) :
100 {
101 *(.debug_line)
102 }
103 .debug_loc BLOCK(__section_alignment__) :
104 {
105 *(.debug_loc)
106 }
107 .debug_pubnames BLOCK(__section_alignment__) :
108 {
109 *(.debug_pubnames)
110 }
111 .debug_ranges BLOCK(__section_alignment__) :
112 {
113 *(.debug_ranges)
114 }
115 .debug_str BLOCK(__section_alignment__) :
116 {
117 *(.debug_str)
118 }
119 INIT BLOCK(__section_alignment__) :
120 {
121 __init_start__ = . ;
122 *(INIT)
123 __init_end__ = . ;
124 }
125 }
126