[0.4.13][NTOSKRNL] Restore section layout to fix BSOD regression CORE-14683

This version (after .rsrc) works different than the
proper version I used for 0.4.12 (after .reloc).

Inserting after .rsrc as actually not correct, but Thomas believes it can
be used as a temporary trick to avoid random memory corruption upon
relocations of the kernel, caused by ROSBE-154.

I follow his advice, although when judging from practical tests only:
as long as we limit this script to NTOSKRNL like I do for releases
there have no negative consequences been observed in real life yet
even with the proper version of 0.4.12.
Up to now those problems have only been observed when used for drivers
MODULE TYPE sdk/cmake/gcc.cmake as well, like
it was tried for a moment in master 0.4.13-dev-609-g
c4d8e2a6e9

Using for drivers immediately did lead to BSODs like CORE-16183 and therefore was
mitigated in master by total disabling of the scripts for both,
kernel and drivers in
0.4.13-dev-621-g
36e9a6f8dd

To allow installing DVDWritenow without BSOD,
we need the script at least for ntoskrnl!

Master remains affected by the BSOD until Thomas allows to commit there as well.
This commit is contained in:
Joachim Henze 2019-11-30 14:10:17 +01:00
parent 7896d3d4ec
commit 2314b107e4
2 changed files with 2 additions and 3 deletions

View file

@ -38,8 +38,7 @@ else()
else()
set_image_base(ntoskrnl 0x80800000)
endif()
#Disabled due to LD bug: ROSBE-154
#add_linker_script(ntoskrnl ${REACTOS_SOURCE_DIR}/sdk/cmake/init-section.lds)
add_linker_script(ntoskrnl ${REACTOS_SOURCE_DIR}/sdk/cmake/init-section.lds)
endif()
target_link_libraries(ntoskrnl cportlib csq ${PSEH_LIB} cmlib ntlsalib rtl ${ROSSYM_LIB} libcntpr wdmguid ioevent)

View file

@ -8,4 +8,4 @@ SECTIONS
__init_end__ = . ;
}
}
INSERT AFTER .reloc;
INSERT AFTER .rsrc;