Shut MSVC warnings up
[reactos.git] / reactos / ntoskrnl / ntoskrnl.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 init BLOCK(__section_alignment__) :
24 {
25 __init_start__ = . ;
26 *(init)
27 __init_end__ = . ;
28 }
29 /* The Cygwin32 library uses a section to avoid copying certain data
30 on fork. This used to be named ".data". The linker used
31 to include this between __data_start__ and __data_end__, but that
32 breaks building the cygwin32 dll. Instead, we name the section
33 ".data_cygwin_nocopy" and explictly include it after __data_end__. */
34 .data BLOCK(__section_alignment__) :
35 {
36 __data_start__ = . ;
37 *(.data)
38 *(.data2)
39 *(SORT(.data$*))
40 __data_end__ = . ;
41 *(.data_cygwin_nocopy)
42 }
43 .rdata BLOCK(__section_alignment__) :
44 {
45 *(.rdata)
46 *(SORT(.rdata$*))
47 *(.eh_frame)
48 }
49 .edata BLOCK(__section_alignment__) :
50 {
51 *(.edata)
52 }
53 /DISCARD/ :
54 {
55 *(.debug$S)
56 *(.debug$T)
57 *(.debug$F)
58 *(.drectve)
59 }
60
61 .idata BLOCK(__section_alignment__) :
62 {
63 /* This cannot currently be handled with grouped sections.
64 See pe.em:sort_sections. */
65 SORT(*)(.idata$2)
66 SORT(*)(.idata$3)
67 /* These zeroes mark the end of the import list. */
68 LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
69 SORT(*)(.idata$4)
70 SORT(*)(.idata$5)
71 SORT(*)(.idata$6)
72 SORT(*)(.idata$7)
73 }
74 .CRT BLOCK(__section_alignment__) :
75 {
76 *(SORT(.CRT$*))
77 }
78 .rsrc BLOCK(__section_alignment__) :
79 {
80 *(.rsrc)
81 *(SORT(.rsrc$*))
82 }
83 .bss BLOCK(__section_alignment__) :
84 {
85 __bss_start__ = . ;
86 *(.bss)
87 *(COMMON)
88 __bss_end__ = . ;
89 }
90 .reloc BLOCK(__section_alignment__) :
91 {
92 *(.reloc)
93 /* These zeroes mark the end of the reloc section. */
94 LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
95 }
96 .stab BLOCK(__section_alignment__) (NOLOAD) :
97 {
98 [ .stab ]
99 }
100 .stabstr BLOCK(__section_alignment__) (NOLOAD) :
101 {
102 [ .stabstr ]
103 }
104 }
105