non-SSE2 binary for XP?

Since (AFAIK) MSVC 2017 comes with SSE2 optimisations enabled as default, overlooking it produces binaries incompatible with AthlonXP and similar processors.
I just upgraded to v.1.6.5 and got the following crash:

Code: c000001d (Illegal instruction)
Version: 1.6.5 (Dec 25 2018)
Major: 5
Minor: 1
Build: 2600
SP: 3
Type: 1
Time: 2020-08-14 22:22:38
TTH: 3A7JKMVDGYVRTGU7RO6C7HYEZIMIOWY2WX4O6VY

d:\development\dcdev\apexdc\trunk\openssl\crypto\asn1\ameth_lib.c(129): EVP_PKEY_asn1_find_str
d:\development\dcdev\apexdc\trunk\openssl\ssl\ssl_ciph.c(420): ssl_load_ciphers
d:\development\dcdev\apexdc\trunk\openssl\ssl\ssl_init.c(24): ossl_init_ssl_base_ossl_
d:\development\dcdev\apexdc\trunk\openssl\crypto\threads_win.c(85): CRYPTO_THREAD_run_once
d:\development\dcdev\apexdc\trunk\openssl\ssl\ssl_init.c(206): OPENSSL_init_ssl
d:\development\dcdev\apexdc\trunk\client\cryptomanager.cpp(54): dcpp::CryptoManager::CryptoManager
d:\development\dcdev\apexdc\trunk\client\dcplusplus.cpp(75): dcpp::startup
d:\development\dcdev\apexdc\trunk\windows\main.cpp(313): ::operator()
c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\future(704): std::_Packaged_state::_Call_immediate
c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\ppltasks.h(3537): Concurrency::task::_InitialTaskHandle<void=0x0028ABD8,=0x0028BFE8,Concurrency::details::_TypeSelectorNoAsync>::_Init
c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\ppltasks.h(16707566): Concurrency::details::_PPLTaskHandle::_InitialTaskHandle<void=0x0186FECC,=0x0070FA99,Concurrency::details::_TypeSelectorNoAsync>=0x00000000,Concurrency::details::_TaskProcHandle>::invoke
c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\pplwin.h(160): Concurrency::details::_TaskProcHandle::_RunChoreBridge
c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\pplwin.h(52): Concurrency::details::_DefaultPPLTaskScheduler::_PPLTaskChore::_Callback
d:\agent_work\2\s\src\vctools\crt\crtw32\stdcpp\thr\taskscheduler.cpp(166): Concurrency::details::`anonymous namespace'::_Task_scheduler_callback_xp
ntdll!0x7C92796D: RtlGUIDFromString
ntdll!0x7C9279AB: RtlGUIDFromString
ntdll!0x7C927A6D: RtlGUIDFromString
ntdll!0x7C927A44: RtlGUIDFromString
kernel32!0x7C80B729: GetModuleFileNameA

Would it be possible to update the ApexDC++_1.6.5_slim_XP.7z package with a SSE-only build, please?

Comments

  • edited September 10

    Assuming I still have the means to compile XP binaries at all I could look into updating the binaries. Although IIRC I did disable some compiler options related to SSE2 already for XP builds.

    Hopefully you don't intend to run said binary on an actual XP machine, as such machine shouldn't be connected to an externally accessible network in the first place (in 2020).

    Edit: you have an interesting definition of just :D (the crash log you chose to include is is from Dec 2018).

  • @Crise said:
    Hopefully you don't intend to run said binary on an actual XP machine, as such machine shouldn't be connected to an externally accessible network in the first place (in 2020).

    Well, the XP machine is my main one :D (Un)fortunately, it is behind a NAT created by the router, which itself is behind the ISP NAT...

    @Crise said:
    Edit: you have an interesting definition of just :D (the crash log you chose to include is is from Dec 2018).

    I hadn't touched DC++ since a long time, then when i needed it my old ApexDC forced me to update to the latest available version 1.6.5 from Dec 2018. The log itself is from Aug 2020, as you can see in the 8th line.
    Which reminds me... Is there a way to override that behaviour and use the "expired" version (even if it's temporary)?

Sign In or Register to comment.