[KEYBOARDLEYOUTS]

Keyboard layout files have special requirements to the section layout of the dell. That is because MS win32k devs didn't write proper code and that is why the original win32k first parses all sections, looks for the .data section, checks if everything is valid and then truncates a pointer in a table to 16 bit and uses this as an offset into the section. Of course that does ONLY work, if the section is the first section AND that pointer happens to be less than 64k off from the start of the section AND the image base is 64k aligned. To achieve this, add a new module type kbdlayout that does all the neccessary things. On MSVC we merge the sections with a linker command, on GCC we use a custom linker script.

svn path=/trunk/; revision=61053
This commit is contained in:
Timo Kreuzer 2013-11-19 23:30:58 +00:00
parent f200563361
commit db897ac621
82 changed files with 127 additions and 80 deletions

View file

@ -429,6 +429,18 @@ function(set_module_type MODULE TYPE)
set(__subsystem console)
elseif(${TYPE} STREQUAL win32gui)
set(__subsystem windows)
elseif(${TYPE} STREQUAL kbdlayout)
set_entrypoint(${MODULE} 0)
set_image_base(${MODULE} 0x5FFF0000)
set_subsystem(${MODULE} native)
if (MSVC)
# Merge the .text and .rdata section into the .data section
add_target_link_flags(${MODULE} "/ignore:4254 /SECTION:.data,ER /MERGE:.text=.data /MERGE:.rdata=.data /MERGE:.bss=.data /MERGE:.edata=.data")
else()
# Use a custom linker script
add_target_link_flags(${MODULE} "-Wl,-T,${CMAKE_SOURCE_DIR}/kbdlayout.lds")
add_dependencies(${MODULE} "${CMAKE_SOURCE_DIR}/kbdlayout.lds")
endif()
elseif(NOT ((${TYPE} STREQUAL win32dll) OR (${TYPE} STREQUAL win32ocx)
OR (${TYPE} STREQUAL cpl) OR (${TYPE} STREQUAL module)))
message(FATAL_ERROR "Unknown type ${TYPE} for module ${MODULE}")

View file

@ -5,7 +5,7 @@ spec2def(kbda1.dll kbda1.spec)
add_library(kbda1 SHARED kbda1.c kbda1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbda1.def)
set_entrypoint(kbda1 0)
set_module_type(kbda1 kbdlayout)
add_dependencies(kbda1 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbda2.dll kbda2.spec)
add_library(kbda2 SHARED kbda2.c kbda2.rc ${CMAKE_CURRENT_BINARY_DIR}/kbda2.def)
set_entrypoint(kbda2 0)
set_module_type(kbda2 kbdlayout)
add_dependencies(kbda2 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbda3.dll kbda3.spec)
add_library(kbda3 SHARED kbda3.c kbda3.rc ${CMAKE_CURRENT_BINARY_DIR}/kbda3.def)
set_entrypoint(kbda3 0)
set_module_type(kbda3 kbdlayout)
add_dependencies(kbda3 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdal.dll kbdal.spec)
add_library(kbdal SHARED kbdal.c kbdal.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdal.def)
set_entrypoint(kbdal 0)
set_module_type(kbdal kbdlayout)
add_dependencies(kbdal psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdarme.dll kbdarme.spec)
add_library(kbdarme SHARED kbdarme.c kbdarme.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdarme.def)
set_entrypoint(kbdarme 0)
set_module_type(kbdarme kbdlayout)
add_dependencies(kbdarme psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdarmw.dll kbdarmw.spec)
add_library(kbdarmw SHARED kbdarmw.c kbdarmw.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdarmw.def)
set_entrypoint(kbdarmw 0)
set_module_type(kbdarmw kbdlayout)
add_dependencies(kbdarmw psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdaze.dll kbdaze.spec)
add_library(kbdaze SHARED kbdaze.c kbdaze.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdaze.def)
set_entrypoint(kbdaze 0)
set_module_type(kbdaze kbdlayout)
add_dependencies(kbdaze psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdazel.dll kbdazel.spec)
add_library(kbdazel SHARED kbdazel.c kbdazel.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdazel.def)
set_entrypoint(kbdazel 0)
set_module_type(kbdazel kbdlayout)
add_dependencies(kbdazel psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdbe.dll kbdbe.spec)
add_library(kbdbe SHARED kbdbe.c kbdbe.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbe.def)
set_entrypoint(kbdbe 0)
set_module_type(kbdbe kbdlayout)
add_dependencies(kbdbe psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdbga.dll kbdbga.spec)
add_library(kbdbga SHARED kbdbga.c kbdbga.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbga.def)
set_entrypoint(kbdbga 0)
set_module_type(kbdbga kbdlayout)
add_dependencies(kbdbga psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdbgm.dll kbdbgm.spec)
add_library(kbdbgm SHARED kbdbgm.c kbdbgm.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbgm.def)
set_entrypoint(kbdbgm 0)
set_module_type(kbdbgm kbdlayout)
add_dependencies(kbdbgm psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdbgt.dll kbdbgt.spec)
add_library(kbdbgt SHARED kbdbgt.c kbdbgt.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbgt.def)
set_entrypoint(kbdbgt 0)
set_module_type(kbdbgt kbdlayout)
add_dependencies(kbdbgt psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdblr.dll kbdblr.spec)
add_library(kbdblr SHARED kbdblr.c kbdblr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdblr.def)
set_entrypoint(kbdblr 0)
set_module_type(kbdblr kbdlayout)
add_dependencies(kbdblr psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdbr.dll kbdbr.spec)
add_library(kbdbr SHARED kbdbr.c kbdbr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbr.def)
set_entrypoint(kbdbr 0)
set_module_type(kbdbr kbdlayout)
add_dependencies(kbdbr psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdbur.dll kbdbur.spec)
add_library(kbdbur SHARED kbdbur.c kbdbur.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbur.def)
set_entrypoint(kbdbur 0)
set_module_type(kbdbur kbdlayout)
add_dependencies(kbdbur psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdcan.dll kbdcan.spec)
add_library(kbdcan SHARED kbdcan.c kbdcan.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdcan.def)
set_entrypoint(kbdcan 0)
set_module_type(kbdcan kbdlayout)
add_dependencies(kbdcan psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdcr.dll kbdcr.spec)
add_library(kbdcr SHARED kbdcr.c kbdcr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdcr.def)
set_entrypoint(kbdcr 0)
set_module_type(kbdcr kbdlayout)
add_dependencies(kbdcr psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdcz.dll kbdcz.spec)
add_library(kbdcz SHARED kbdcz.c kbdcz.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdcz.def)
set_entrypoint(kbdcz 0)
set_module_type(kbdcz kbdlayout)
add_dependencies(kbdcz psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdcz1.dll kbdcz1.spec)
add_library(kbdcz1 SHARED kbdcz1.c kbdcz1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdcz1.def)
set_entrypoint(kbdcz1 0)
set_module_type(kbdcz1 kbdlayout)
add_dependencies(kbdcz1 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdda.dll kbdda.spec)
add_library(kbdda SHARED kbdda.c kbdda.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdda.def)
set_entrypoint(kbdda 0)
set_module_type(kbdda kbdlayout)
add_dependencies(kbdda psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbddv.dll kbddv.spec)
add_library(kbddv SHARED kbddv.c kbddv.rc ${CMAKE_CURRENT_BINARY_DIR}/kbddv.def)
set_entrypoint(kbddv 0)
set_module_type(kbddv kbdlayout)
add_dependencies(kbddv psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdes.dll kbdes.spec)
add_library(kbdes SHARED kbdes.c kbdes.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdes.def)
set_entrypoint(kbdes 0)
set_module_type(kbdes kbdlayout)
add_dependencies(kbdes psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdest.dll kbdest.spec)
add_library(kbdest SHARED kbdest.c kbdest.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdest.def)
set_entrypoint(kbdest 0)
set_module_type(kbdest kbdlayout)
add_dependencies(kbdest psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdfc.dll kbdfc.spec)
add_library(kbdfc SHARED kbdfc.c kbdfc.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdfc.def)
set_entrypoint(kbdfc 0)
set_module_type(kbdfc kbdlayout)
add_dependencies(kbdfc psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdfi.dll kbdfi.spec)
add_library(kbdfi SHARED kbdfi.c kbdfi.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdfi.def)
set_entrypoint(kbdfi 0)
set_module_type(kbdfi kbdlayout)
add_dependencies(kbdfi psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdfr.dll kbdfr.spec)
add_library(kbdfr SHARED kbdfr.c kbdfr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdfr.def)
set_entrypoint(kbdfr 0)
set_module_type(kbdfr kbdlayout)
add_dependencies(kbdfr psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdgeo.dll kbdgeo.spec)
add_library(kbdgeo SHARED kbdgeo.c kbdgeo.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgeo.def)
set_entrypoint(kbdgeo 0)
set_module_type(kbdgeo kbdlayout)
add_dependencies(kbdgeo psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdgerg.dll kbdgerg.spec)
add_library(kbdgerg SHARED kbdgerg.c kbdgerg.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgerg.def)
set_entrypoint(kbdgerg 0)
set_module_type(kbdgerg kbdlayout)
add_dependencies(kbdgerg psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdgneo.dll kbdgneo.spec)
add_library(kbdgneo SHARED kbdgneo.c kbdgneo.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgneo.def)
set_entrypoint(kbdgneo 0)
set_module_type(kbdgneo kbdlayout)
add_dependencies(kbdgneo psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdgr.dll kbdgr.spec)
add_library(kbdgr SHARED kbdgr.c kbdgr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgr.def)
set_entrypoint(kbdgr 0)
set_module_type(kbdgr kbdlayout)
add_dependencies(kbdgr psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdgrist.dll kbdgrist.spec)
add_library(kbdgrist SHARED kbdgrist.c kbdgrist.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgrist.def)
set_entrypoint(kbdgrist 0)
set_module_type(kbdgrist kbdlayout)
add_dependencies(kbdgrist psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdhe.dll kbdhe.spec)
add_library(kbdhe SHARED kbdhe.c kbdhe.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdhe.def)
set_entrypoint(kbdhe 0)
set_module_type(kbdhe kbdlayout)
add_dependencies(kbdhe psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdheb.dll kbdheb.spec)
add_library(kbdheb SHARED kbdheb.c kbdheb.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdheb.def)
set_entrypoint(kbdheb 0)
set_module_type(kbdheb kbdlayout)
add_dependencies(kbdheb psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdhu.dll kbdhu.spec)
add_library(kbdhu SHARED kbdhu.c kbdhu.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdhu.def)
set_entrypoint(kbdhu 0)
set_module_type(kbdhu kbdlayout)
add_dependencies(kbdhu psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdic.dll kbdic.spec)
add_library(kbdic SHARED kbdic.c kbdic.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdic.def)
set_entrypoint(kbdic 0)
set_module_type(kbdic kbdlayout)
add_dependencies(kbdic psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdinasa.dll kbdinasa.spec)
add_library(kbdinasa SHARED kbdinasa.c kbdinasa.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdinasa.def)
set_entrypoint(kbdinasa 0)
set_module_type(kbdinasa kbdlayout)
add_dependencies(kbdinasa psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdinben.dll kbdinben.spec)
add_library(kbdinben SHARED kbdinben.c kbdinben.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdinben.def)
set_entrypoint(kbdinben 0)
set_module_type(kbdinben kbdlayout)
add_dependencies(kbdinben psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdindev.dll kbdindev.spec)
add_library(kbdindev SHARED kbdindev.c kbdindev.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdindev.def)
set_entrypoint(kbdindev 0)
set_module_type(kbdindev kbdlayout)
add_dependencies(kbdindev psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdinguj.dll kbdinguj.spec)
add_library(kbdinguj SHARED kbdinguj.c kbdinguj.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdinguj.def)
set_entrypoint(kbdinguj 0)
set_module_type(kbdinguj kbdlayout)
add_dependencies(kbdinguj psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdinmal.dll kbdinmal.spec)
add_library(kbdinmal SHARED kbdinmal.c kbdinmal.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdinmal.def)
set_entrypoint(kbdinmal 0)
set_module_type(kbdinmal kbdlayout)
add_dependencies(kbdinmal psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdir.dll kbdir.spec)
add_library(kbdir SHARED kbdir.c kbdir.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdir.def)
set_entrypoint(kbdir 0)
set_module_type(kbdir kbdlayout)
add_dependencies(kbdir psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdit.dll kbdit.spec)
add_library(kbdit SHARED kbdit.c kbdit.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdit.def)
set_entrypoint(kbdit 0)
set_module_type(kbdit kbdlayout)
add_dependencies(kbdit psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdja.dll kbdja.spec)
add_library(kbdja SHARED kbdja.c kbdja.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdja.def)
set_entrypoint(kbdja 0)
set_module_type(kbdja kbdlayout)
add_dependencies(kbdja psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdkaz.dll kbdkaz.spec)
add_library(kbdkaz SHARED kbdkaz.c kbdkaz.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdkaz.def)
set_entrypoint(kbdkaz 0)
set_module_type(kbdkaz kbdlayout)
add_dependencies(kbdkaz psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdko.dll kbdko.spec)
add_library(kbdko SHARED kbdko.c kbdko.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdko.def)
set_entrypoint(kbdko 0)
set_module_type(kbdko kbdlayout)
add_dependencies(kbdko psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdla.dll kbdla.spec)
add_library(kbdla SHARED kbdla.c kbdla.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdla.def)
set_entrypoint(kbdla 0)
set_module_type(kbdla kbdlayout)
add_dependencies(kbdla psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdlt1.dll kbdlt1.spec)
add_library(kbdlt1 SHARED kbdlt1.c kbdlt1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdlt1.def)
set_entrypoint(kbdlt1 0)
set_module_type(kbdlt1 kbdlayout)
add_dependencies(kbdlt1 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdlv.dll kbdlv.spec)
add_library(kbdlv SHARED kbdlv.c kbdlv.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdlv.def)
set_entrypoint(kbdlv 0)
set_module_type(kbdlv kbdlayout)
add_dependencies(kbdlv psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdmac.dll kbdmac.spec)
add_library(kbdmac SHARED kbdmac.c kbdmac.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdmac.def)
set_entrypoint(kbdmac 0)
set_module_type(kbdmac kbdlayout)
add_dependencies(kbdmac psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdne.dll kbdne.spec)
add_library(kbdne SHARED kbdne.c kbdne.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdne.def)
set_entrypoint(kbdne 0)
set_module_type(kbdne kbdlayout)
add_dependencies(kbdne psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdno.dll kbdno.spec)
add_library(kbdno SHARED kbdno.c kbdno.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdno.def)
set_entrypoint(kbdno 0)
set_module_type(kbdno kbdlayout)
add_dependencies(kbdno psdk)

View file

@ -3,7 +3,7 @@ spec2def(kbdpl.dll kbdpl.spec)
add_library(kbdpl SHARED kbdpl.c kbdpl.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdpl.def)
set_entrypoint(kbdpl 0)
set_module_type(kbdpl kbdlayout)
add_dependencies(kbdpl psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdpl1.dll kbdpl1.spec)
add_library(kbdpl1 SHARED kbdpl1.c kbdpl1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdpl1.def)
set_entrypoint(kbdpl1 0)
set_module_type(kbdpl1 kbdlayout)
add_dependencies(kbdpl1 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdpo.dll kbdpo.spec)
add_library(kbdpo SHARED kbdpo.c kbdpo.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdpo.def)
set_entrypoint(kbdpo 0)
set_module_type(kbdpo kbdlayout)
add_dependencies(kbdpo psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdro.dll kbdro.spec)
add_library(kbdro SHARED kbdro.c kbdro.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdro.def)
set_entrypoint(kbdro 0)
set_module_type(kbdro kbdlayout)
add_dependencies(kbdro psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdru.dll kbdru.spec)
add_library(kbdru SHARED kbdru.c kbdru.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdru.def)
set_entrypoint(kbdru 0)
set_module_type(kbdru kbdlayout)
add_dependencies(kbdru psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdru1.dll kbdru1.spec)
add_library(kbdru1 SHARED kbdru1.c kbdru1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdru1.def)
set_entrypoint(kbdru1 0)
set_module_type(kbdru1 kbdlayout)
add_dependencies(kbdru1 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdsg.dll kbdsg.spec)
add_library(kbdsg SHARED kbdsg.c kbdsg.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdsg.def)
set_entrypoint(kbdsg 0)
set_module_type(kbdsg kbdlayout)
add_dependencies(kbdsg psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdsk.dll kbdsk.spec)
add_library(kbdsk SHARED kbdsk.c kbdsk.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdsk.def)
set_entrypoint(kbdsk 0)
set_module_type(kbdsk kbdlayout)
add_dependencies(kbdsk psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdsk1.dll kbdsk1.spec)
add_library(kbdsk1 SHARED kbdsk1.c kbdsk1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdsk1.def)
set_entrypoint(kbdsk1 0)
set_module_type(kbdsk1 kbdlayout)
add_dependencies(kbdsk1 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdsw.dll kbdsw.spec)
add_library(kbdsw SHARED kbdsw.c kbdsw.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdsw.def)
set_entrypoint(kbdsw 0)
set_module_type(kbdsw kbdlayout)
add_dependencies(kbdsw psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdtat.dll kbdtat.spec)
add_library(kbdtat SHARED kbdtat.c kbdtat.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdtat.def)
set_entrypoint(kbdtat 0)
set_module_type(kbdtat kbdlayout)
add_dependencies(kbdtat psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdth0.dll kbdth0.spec)
add_library(kbdth0 SHARED kbdth0.c kbdth0.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdth0.def)
set_entrypoint(kbdth0 0)
set_module_type(kbdth0 kbdlayout)
add_dependencies(kbdth0 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdth1.dll kbdth1.spec)
add_library(kbdth1 SHARED kbdth1.c kbdth1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdth1.def)
set_entrypoint(kbdth1 0)
set_module_type(kbdth1 kbdlayout)
add_dependencies(kbdth1 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdth2.dll kbdth2.spec)
add_library(kbdth2 SHARED kbdth2.c kbdth2.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdth2.def)
set_entrypoint(kbdth2 0)
set_module_type(kbdth2 kbdlayout)
add_dependencies(kbdth2 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdth3.dll kbdth3.spec)
add_library(kbdth3 SHARED kbdth3.c kbdth3.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdth3.def)
set_entrypoint(kbdth3 0)
set_module_type(kbdth3 kbdlayout)
add_dependencies(kbdth3 psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdtuf.dll kbdtuf.spec)
add_library(kbdtuf SHARED kbdtuf.c kbdtuf.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdtuf.def)
set_entrypoint(kbdtuf 0)
set_module_type(kbdtuf kbdlayout)
add_dependencies(kbdtuf psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdtuq.dll kbdtuq.spec)
add_library(kbdtuq SHARED kbdtuq.c kbdtuq.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdtuq.def)
set_entrypoint(kbdtuq 0)
set_module_type(kbdtuq kbdlayout)
add_dependencies(kbdtuq psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbduk.dll kbduk.spec)
add_library(kbduk SHARED kbduk.c kbduk.rc ${CMAKE_CURRENT_BINARY_DIR}/kbduk.def)
set_entrypoint(kbduk 0)
set_module_type(kbduk kbdlayout)
add_dependencies(kbduk psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdur.dll kbdur.spec)
add_library(kbdur SHARED kbdur.c kbdur.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdur.def)
set_entrypoint(kbdur 0)
set_module_type(kbdur kbdlayout)
add_dependencies(kbdur psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdurs.dll kbdurs.spec)
add_library(kbdurs SHARED kbdurs.c kbdurs.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdurs.def)
set_entrypoint(kbdurs 0)
set_module_type(kbdurs kbdlayout)
add_dependencies(kbdurs psdk)

View file

@ -4,7 +4,7 @@ spec2def(kbdus.dll kbdus.spec)
add_library(kbdus SHARED kbdus.c kbdus.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdus.def)
set_entrypoint(kbdus 0)
set_module_type(kbdus kbdlayout)
add_dependencies(kbdus psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdusa.dll kbdusa.spec)
add_library(kbdusa SHARED kbdusa.c kbdusa.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdusa.def)
set_entrypoint(kbdusa 0)
set_module_type(kbdusa kbdlayout)
add_dependencies(kbdusa psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdusl.dll kbdusl.spec)
add_library(kbdusl SHARED kbdusl.c kbdusl.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdusl.def)
set_entrypoint(kbdusl 0)
set_module_type(kbdusl kbdlayout)
add_dependencies(kbdusl psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdusr.dll kbdusr.spec)
add_library(kbdusr SHARED kbdusr.c kbdusr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdusr.def)
set_entrypoint(kbdusr 0)
set_module_type(kbdusr kbdlayout)
add_dependencies(kbdusr psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdusx.dll kbdusx.spec)
add_library(kbdusx SHARED kbdusx.c kbdusx.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdusx.def)
set_entrypoint(kbdusx 0)
set_module_type(kbdusx kbdlayout)
add_dependencies(kbdusx psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbduzb.dll kbduzb.spec)
add_library(kbduzb SHARED kbduzb.c kbduzb.rc ${CMAKE_CURRENT_BINARY_DIR}/kbduzb.def)
set_entrypoint(kbduzb 0)
set_module_type(kbduzb kbdlayout)
add_dependencies(kbduzb psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdvntc.dll kbdvntc.spec)
add_library(kbdvntc SHARED kbdvntc.c kbdvntc.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdvntc.def)
set_entrypoint(kbdvntc 0)
set_module_type(kbdvntc kbdlayout)
add_dependencies(kbdvntc psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdycc.dll kbdycc.spec)
add_library(kbdycc SHARED kbdycc.c kbdycc.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdycc.def)
set_entrypoint(kbdycc 0)
set_module_type(kbdycc kbdlayout)
add_dependencies(kbdycc psdk)

View file

@ -5,7 +5,7 @@ spec2def(kbdycl.dll kbdycl.spec)
add_library(kbdycl SHARED kbdycl.c kbdycl.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdycl.def)
set_entrypoint(kbdycl 0)
set_module_type(kbdycl kbdlayout)
add_dependencies(kbdycl psdk)

35
reactos/kbdlayout.lds Normal file
View file

@ -0,0 +1,35 @@
SECTIONS
{
.data __image_base__ + __section_alignment__ :
{
*(.data)
*(SORT(.data*))
*(.rdata)
*(SORT(.rdata*))
*(.text)
*(SORT(.text*))
*(.bss)
*(COMMON)
}
.rsrc BLOCK(__section_alignment__) :
{
*(.rsrc)
*(SORT(.rsrc$*))
}
.reloc BLOCK(__section_alignment__) :
{
*(.reloc)
}
.edata BLOCK(__section_alignment__) :
{
*(.edata)
}
/DISCARD/ :
{
*(*)
}
}