diff --git a/reactos/boot/freeldr/freeldr/freeldr_i386.lnk b/reactos/boot/freeldr/freeldr/freeldr_i386.lnk index c4c293cde38..9f3a0a31a2e 100644 --- a/reactos/boot/freeldr/freeldr/freeldr_i386.lnk +++ b/reactos/boot/freeldr/freeldr/freeldr_i386.lnk @@ -23,6 +23,15 @@ SECTIONS __bss_end__ = . ; } + .stab BLOCK(__section_alignment__) (NOLOAD) : + { + *(.stab) + } + .stabstr BLOCK(__section_alignment__) (NOLOAD) : + { + *(.stabstr) + } + /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section. Unlike other targets that fake this by putting the @@ -43,7 +52,7 @@ SECTIONS /* DWARF 2. */ .debug_info BLOCK(__section_alignment__) (NOLOAD) : { - *(.debug_info) *(.gnu.linkonce.wi.*) + *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : { @@ -98,7 +107,7 @@ SECTIONS /* DWARF 4. */ .debug_types BLOCK(__section_alignment__) (NOLOAD) : { - *(.debug_types) *(.gnu.linkonce.wt.*) + *(.debug_types .gnu.linkonce.wt.*) } /DISCARD/ : diff --git a/reactos/ntoskrnl/ntoskrnl_i386.lnk b/reactos/ntoskrnl/ntoskrnl_i386.lnk index 788cda743c1..fbc9034a245 100644 --- a/reactos/ntoskrnl/ntoskrnl_i386.lnk +++ b/reactos/ntoskrnl/ntoskrnl_i386.lnk @@ -1,105 +1,150 @@ -OUTPUT_FORMAT(pei-i386) -ENTRY(_mainCRTStartup) SECTIONS { - .text __image_base__ + __section_alignment__ : + .text __image_base__ + __section_alignment__ : { - __text_start__ = .; - *(.init) *(.text) - *(SORT(.text$*)) - *(.glue_7t) - *(.glue_7) - ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; - LONG (-1); *(.ctors); *(.ctor); LONG (0); - ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; - LONG (-1); *(.dtors); *(.dtor); LONG (0); - *(.fini) - /* ??? Why is .gcc_exc here? */ - *(.gcc_exc) - __text_end__ = .; - *(.gcc_except_table) + *(SORT(.text*)) } - /* The Cygwin32 library uses a section to avoid copying certain data - on fork. This used to be named ".data". The linker used - to include this between __data_start__ and __data_end__, but that - breaks building the cygwin32 dll. Instead, we name the section - ".data_cygwin_nocopy" and explictly include it after __data_end__. */ - .data BLOCK(__section_alignment__) : + + .data BLOCK(__section_alignment__) : { - __data_start__ = . ; *(.data) - *(.data2) - *(SORT(.data$*)) - __data_end__ = . ; - *(.data_cygwin_nocopy) + *(SORT(.data*)) } + .rdata BLOCK(__section_alignment__) : { *(.rdata) - *(SORT(.rdata$*)) + *(SORT(.rdata*)) *(.eh_frame) } + .edata BLOCK(__section_alignment__) : { *(.edata) } + /DISCARD/ : { - *(.debug$S) - *(.debug$T) - *(.debug$F) *(.drectve) + *(.gnu.lto_*) } .idata BLOCK(__section_alignment__) : { /* This cannot currently be handled with grouped sections. - See pe.em:sort_sections. */ + See pe.em:sort_sections. */ SORT(*)(.idata$2) SORT(*)(.idata$3) /* These zeroes mark the end of the import list. */ LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); - SORT(*)(.idata$4) + SORT(*)(.idata$4) SORT(*)(.idata$5) SORT(*)(.idata$6) SORT(*)(.idata$7) } - .CRT BLOCK(__section_alignment__) : - { - *(SORT(.CRT$*)) - } + .rsrc BLOCK(__section_alignment__) : - { + { *(.rsrc) *(SORT(.rsrc$*)) } + .bss BLOCK(__section_alignment__) : { - __bss_start__ = . ; *(.bss) *(COMMON) - __bss_end__ = . ; } + .reloc BLOCK(__section_alignment__) : - { + { *(.reloc) - /* These zeroes mark the end of the reloc section. */ - LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); } + .stab BLOCK(__section_alignment__) (NOLOAD) : { - [ .stab ] + *(.stab) } .stabstr BLOCK(__section_alignment__) (NOLOAD) : { - [ .stabstr ] + *(.stabstr) } - INIT BLOCK(__section_alignment__) : + + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section. Unlike other targets that fake this by putting the + section VMA at 0, the PE format will not allow it. */ + /* DWARF 1.1 and DWARF 2. */ + .debug_aranges BLOCK(__section_alignment__) (NOLOAD) : { - __init_start__ = . ; - *(INIT) - __init_end__ = . ; + *(.debug_aranges) + } + .debug_pubnames BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_pubnames) + } + .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_pubtypes) + } + /* DWARF 2. */ + .debug_info BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_info .gnu.linkonce.wi.*) + } + .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_abbrev) + } + .debug_line BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_line) + } + .debug_frame BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_frame*) + } + .debug_str BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_str) + } + .debug_loc BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_loc) + } + .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_macinfo) + } + /* SGI/MIPS DWARF 2 extensions. */ + .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_weaknames) + } + .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_funcnames) + } + .debug_typenames BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_typenames) + } + .debug_varnames BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_varnames) + } + .debug_macro BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_macro) + } + /* DWARF 3. */ + .debug_ranges BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_ranges) + } + /* DWARF 4. */ + .debug_types BLOCK(__section_alignment__) (NOLOAD) : + { + *(.debug_types .gnu.linkonce.wt.*) } } -