XomPie icon indicating copy to clipboard operation
XomPie copied to clipboard

TODO

Open tumagonx opened this issue 3 years ago • 5 comments

  • 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

tumagonx avatar Dec 02 '21 14:12 tumagonx

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 avatar Dec 02 '21 15:12 tumagonx

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:

tumagonx avatar Dec 02 '21 15:12 tumagonx

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+

Svyatpro avatar Dec 03 '21 16:12 Svyatpro

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 avatar Dec 04 '21 04:12 tumagonx

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?

tumagonx avatar Dec 11 '21 00:12 tumagonx