Windows: Generate import libraries for private ntdll and wow64 APIs

The MinGW supplied import libraries are incomplete and miss a lot of
functions necessary to implement lower level windows code. To avoid
needing to many resolve every function, pull in .def files from wine
that detail the entire ntdll and wow64 APIs.
This commit is contained in:
Billy Laws committed 2023-09-22 10:12:40 -07:00
1 parent f46fd42977
commit 9612133088
4 files changed
+1430

No files matched your search

+4
View File
@@ -1,2 +1,6 @@
add_subdirectory(Common/)
add_subdirectory(Tools/)
if (MINGW_BUILD)
add_subdirectory(Windows/)
endif()
+15
View File
@@ -0,0 +1,15 @@
function(build_implib name)
add_custom_target(${name}lib ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.a)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.a
COMMAND ${CMAKE_DLLTOOL} -d ${CMAKE_CURRENT_SOURCE_DIR}/Defs/${name}.def -k -l lib${name}.a
COMMENT "Building lib${name}.a"
)
add_library(${name} SHARED IMPORTED)
set_property(TARGET ${name} PROPERTY IMPORTED_IMPLIB ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.a)
add_dependencies(${name} ${name}lib)
endfunction()
build_implib(ntdll)
build_implib(wow64)
File diff suppressed because it is too large. Load diff
+33
View File
@@ -0,0 +1,33 @@
; File generated automatically from wine/dlls/wow64/wow64.spec; do not edit!
; To generate: winebuild --def -E wine/dlls/wow64/wow64.spec > wow64.def
LIBRARY wow64.dll
EXPORTS
Wow64AllocThreadHeap @1 PRIVATE
Wow64AllocateHeap @2 PRIVATE
Wow64AllocateTemp @3
Wow64ApcRoutine @4
Wow64CheckIfNXEnabled @5 PRIVATE
Wow64EmulateAtlThunk @6 PRIVATE
Wow64FreeHeap @7 PRIVATE
Wow64FreeThreadHeap @8 PRIVATE
Wow64GetWow64ImageOption @9 PRIVATE
Wow64IsControlFlowGuardEnforced @10 PRIVATE
Wow64IsStackExtentsCheckEnforced @11 PRIVATE
Wow64KiUserCallbackDispatcher @12
Wow64LdrpInitialize @13
Wow64LogPrint @14 PRIVATE
Wow64NotifyUnsimulateComplete @15 PRIVATE
Wow64PassExceptionToGuest @16
Wow64PrepareForDebuggerAttach @17 PRIVATE
Wow64PrepareForException @18
Wow64RaiseException @19
Wow64ShallowThunkAllocObjectAttributes32TO64_FNC @20 PRIVATE
Wow64ShallowThunkAllocSecurityQualityOfService32TO64_FNC @21 PRIVATE
Wow64ShallowThunkSIZE_T32TO64 @22 PRIVATE
Wow64ShallowThunkSIZE_T64TO32 @23 PRIVATE
Wow64SuspendLocalThread @24
Wow64SystemServiceEx @25
Wow64ValidateUserCallTarget @26 PRIVATE
Wow64ValidateUserCallTargetFilter @27 PRIVATE