tumagonx / XomPie

Simple tools that might™ make newer application with trivial compatibility issue to run™ on Windows XP
GNU Lesser General Public License v3.0
61 stars 8 forks source link

TODO #8

Open tumagonx opened 2 years ago

tumagonx commented 2 years ago
tumagonx commented 2 years ago

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.

tumagonx commented 2 years ago

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:

Svyatpro commented 2 years ago

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+

tumagonx commented 2 years ago

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)

tumagonx commented 2 years ago

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?