From c8fa11373bfcba1b777426febd70e1caf4955463 Mon Sep 17 00:00:00 2001 From: Shane Fournier <93808768+win32ss@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:26:32 -0400 Subject: Windows XP compatibility for Telegram module (#4729) * These changes should allow telegram.dll to build as an XP-compatible component, using LSC wrapper DLLs to resolve dependencies in kernel32.dll and ws2_32.dll. mir_app also uses the LSC wrapper in place of kernel32 to load telegram.dll with support for implicit thread local storage. * Corrected mir_app link target * Now returning to this code, correcting the Telegram build to incorporate the libs properly. * Removed requirement for pwrp_k32 in mir_app. The TLS loading process will now be performed through GetSystemTimeAsFileTime in the Telegram DLL as calls to that function are made before this first TLS access attempt. --------- Co-authored-by: win32ss --- libs/win32/p_s232.lib | Bin 0 -> 43812 bytes libs/win32/progwrp_k32.lib | Bin 0 -> 389574 bytes libs/win64/p_s232.lib | Bin 0 -> 42840 bytes libs/win64/progwrp_k32.lib | Bin 0 -> 381346 bytes protocols/Telegram/Telegram.vcxproj | 2 +- tools/build_scripts/redist/x32/lsc/p_s232.dll | Bin 0 -> 39936 bytes tools/build_scripts/redist/x32/lsc/pwrp_k32.dll | Bin 0 -> 326144 bytes tools/build_scripts/redist/x64/lsc/p_s232.dll | Bin 0 -> 43520 bytes tools/build_scripts/redist/x64/lsc/pwrp_k32.dll | Bin 0 -> 355328 bytes tools/build_scripts/z2_PackPluginUpdater.bat | 9 +++++++++ 10 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 libs/win32/p_s232.lib create mode 100644 libs/win32/progwrp_k32.lib create mode 100644 libs/win64/p_s232.lib create mode 100644 libs/win64/progwrp_k32.lib create mode 100644 tools/build_scripts/redist/x32/lsc/p_s232.dll create mode 100644 tools/build_scripts/redist/x32/lsc/pwrp_k32.dll create mode 100644 tools/build_scripts/redist/x64/lsc/p_s232.dll create mode 100644 tools/build_scripts/redist/x64/lsc/pwrp_k32.dll diff --git a/libs/win32/p_s232.lib b/libs/win32/p_s232.lib new file mode 100644 index 0000000000..5e4009b4f8 Binary files /dev/null and b/libs/win32/p_s232.lib differ diff --git a/libs/win32/progwrp_k32.lib b/libs/win32/progwrp_k32.lib new file mode 100644 index 0000000000..a82f9ff92f Binary files /dev/null and b/libs/win32/progwrp_k32.lib differ diff --git a/libs/win64/p_s232.lib b/libs/win64/p_s232.lib new file mode 100644 index 0000000000..5de53775b7 Binary files /dev/null and b/libs/win64/p_s232.lib differ diff --git a/libs/win64/progwrp_k32.lib b/libs/win64/progwrp_k32.lib new file mode 100644 index 0000000000..4d548943ce Binary files /dev/null and b/libs/win64/progwrp_k32.lib differ diff --git a/protocols/Telegram/Telegram.vcxproj b/protocols/Telegram/Telegram.vcxproj index 90e1e5e72d..82aaf0c512 100644 --- a/protocols/Telegram/Telegram.vcxproj +++ b/protocols/Telegram/Telegram.vcxproj @@ -47,7 +47,7 @@ .\tdlib\lib\$(Configuration)32;%(AdditionalLibraryDirectories) .\tdlib\lib\$(Configuration)64;%(AdditionalLibraryDirectories) - libcrypto.lib;libssl.lib;crypt32.lib;psapi.lib;Normaliz.lib;%(AdditionalDependencies) + progwrp_k32.lib;p_s232.lib;libcrypto.lib;libssl.lib;crypt32.lib;psapi.lib;Normaliz.lib;%(AdditionalDependencies) diff --git a/tools/build_scripts/redist/x32/lsc/p_s232.dll b/tools/build_scripts/redist/x32/lsc/p_s232.dll new file mode 100644 index 0000000000..90c31481db Binary files /dev/null and b/tools/build_scripts/redist/x32/lsc/p_s232.dll differ diff --git a/tools/build_scripts/redist/x32/lsc/pwrp_k32.dll b/tools/build_scripts/redist/x32/lsc/pwrp_k32.dll new file mode 100644 index 0000000000..a80c1af3d7 Binary files /dev/null and b/tools/build_scripts/redist/x32/lsc/pwrp_k32.dll differ diff --git a/tools/build_scripts/redist/x64/lsc/p_s232.dll b/tools/build_scripts/redist/x64/lsc/p_s232.dll new file mode 100644 index 0000000000..6063ac80a6 Binary files /dev/null and b/tools/build_scripts/redist/x64/lsc/p_s232.dll differ diff --git a/tools/build_scripts/redist/x64/lsc/pwrp_k32.dll b/tools/build_scripts/redist/x64/lsc/pwrp_k32.dll new file mode 100644 index 0000000000..bccb8e4471 Binary files /dev/null and b/tools/build_scripts/redist/x64/lsc/pwrp_k32.dll differ diff --git a/tools/build_scripts/z2_PackPluginUpdater.bat b/tools/build_scripts/z2_PackPluginUpdater.bat index 998a3b6866..924f7e1a67 100644 --- a/tools/build_scripts/z2_PackPluginUpdater.bat +++ b/tools/build_scripts/z2_PackPluginUpdater.bat @@ -96,6 +96,15 @@ for /f %%a in ('dir plugins\*.dll /B /L') do ( rd /S /Q Libs ren Libs2 Libs ) + + if /I "%%a"=="Telegram.dll" ( + copy /V /Y ..\..\redist\x%tp%\lsc\ps2_32.dll Libs + copy /V /Y ..\..\redist\x%tp%\lsc\pwrp_k32.dll Libs + %ZipIt% "%Arch%\Plugins\%%~na.zip" "Libs\ps2_32.dll" "Libs/pwrp_k32.dll" + del "Libs/ps2_32.dll" + del "Libs/pwrp_k32.dll" + ) + rem now adding plugin itself into archive %ZipIt% "%Arch%\Plugins\%%~na.zip" %%a ) -- cgit v1.2.3