XomPie
XomPie copied to clipboard
TODO
- move to msvc compiler or maybe clang instead of gcc
there are several .obj/.lib of interest that provide "official" backported functions
msvcrt_winxp.obj (part of WDK/DDK) : provide some secure api
fileextd.lib (independent / part of WSDK) : with the help of fileextd.h (download) this provide
OpenFileById
,GetFileInformationByHandleEx
,SetFileInformationByHandle
. note that the one shipped with WSDK need Windows NT 5.2 (2003/XP64). - cleanup Pthread emulated ThreadAPI, there are lot example out there.
- fix
GetFinalPathNameByHandle
, currently the code make no sense when tested on real XP. - incorporate https://github.com/katahiromz/vista2xp especially shell32 part which bring
SHCreateItemFromParsingName
Provide static library that can be integrated to a compiler (preferably clang) and not to use link ntdll directly Use case: building modern open source apps
I been tinkering with the idea of MSVC frankenbuild based on Clang/LLVM 10 with headers/libs taken from MSVC 2019 16.7 (the last XP compatible runtime) replacing VS2008's internal compiler part (I hate VS2010) and WSDK 7.1. So far it works for trivial stuff.
With a msvc/gcc compatible C++17 toolset, Cmake/ninja and static compatibility library, this would serve XP as dogfooding development box for years to go.
Update: to clarify, 16.7 libs/headers is okay with /MD (dynamic link) but static link (libcmt) won't work due to "init" injection by mutex
header.
Vulkan: Swiftshader has moving to provide CPU-based vulkan runtime this another good candidate for XP. IF ever vulkan become dominant.... Wine3d (DX11): Currently this never works for me, other people claim this somewhat works :noidea:
Vulkan: Swiftshader has moving to provide CPU-based vulkan runtime this another good candidate for XP. IF ever vulkan become dominant.... Wine3d (DX11): Currently this never works for me, other people claim this somewhat works :noidea:
Wine3d (DX11) worked for me mostly fine. The only condition was NVIDIA Fermi+
I'm on Intel HD3000 :( found more polished similar project: https://github.com/zeroclear/xpext , so it should be dll not static lib my bad that can be enhanced to be single dll to address TODO 2 so one could put the import lib as part of compiler (pass -lxpext -lntdll / xpext.lib ntdll.lib)
I have uploaded clang 10.0.1 (version matched with VS 2019 16.7) for testing Clang-10.0.1.7z this will form more complete toolchain by adding: entire MSVC 16.7 lib/header (ATL/MFC/UCRT/VCRT) msbuild (mono version that match VS 2019) cmake 3.15 meson 0.56 ninja 1.9.0 Git version?