JayDDee / cpuminer-opt

Optimized multi algo CPU miner
Other
763 stars 541 forks source link

OpenSSL version is too old to work with Zpool #402

Closed platinum4 closed 9 months ago

platinum4 commented 9 months ago

Retail Windows zip file as built with GCC 9.3.0 has SSL handshake problem with Zpool

platinum4 commented 9 months ago

_OpenSSL 1.1.1 series has reached its End of Life (EOL). As such it will no longer receive publicly available security fixes.

OpenSSL 1.1.1 was released on 11th September 2018 as a Long Term Support (LTS) release. LTS lasts five years and consequently OpenSSL 1.1.1 has reached its EOL as of today, 11th September 2023._

JayDDee commented 9 months ago

Thanks for the heads up, it was inevitable. Does it still work or do ssl connections fail?

I realize the build system is getting old, it won't support the new SHA512, APX, and AVX10 extensions. There's no available compiler that support APX or AVX10 yet.

Building a new Windows package build system is a lot of work and I don't want to do it anymore than necessary. Rebuilding based on Ubuntu 22.04 will only buy a little time. 24.04 isn't much better, it won't have gcc-14, the fist possible version to support the new features mentioned above.

In the meantime MSYS2 has GCC-13 as well as up to date openssl, can build for specific targets, and is the recommended way to build for Windows.

I haven't yet decided if I will update the build system for Windows given the advantages of using msys2, including less work for me.

YetAnotherRussian commented 9 months ago

There's no available compiler that support APX or AVX10 yet.

https://www.phoronix.com/news/GCC-Lands-Initial-AVX10.1

LLVM/CLANG has already done (https://github.com/llvm/llvm-project/pull/67278). I'm pretty sure ICC (non-free) did.

JayDDee commented 9 months ago

There's no available compiler that support APX or AVX10 yet.

https://www.phoronix.com/news/GCC-Lands-Initial-AVX10.1

LLVM/CLANG has already done (llvm/llvm-project#67278). I'm pretty sure ICC (non-free) did.

I did say available. Those are just the first patches, there's still a long way to go. I expect ICC to be first with a working compiler because it's probably being developed by the same people that designed the features in the first place. APX is the one that badly needs a compiler as it doesn't require any source code changes. AVX10.1 is just a new name for AVX512 but AVX10 is the most difficult for the compiler (linker) because it creates a fork in the timeline with this "AVX256" or "AVX2+AVX512VL" architecture that takes a step back from AVX512. SHA512 is just an extension of SHA so it's the easiest to implement for compilers. Curiously ARM already has SHA512, APX & AVX10 don't really apply.

JayDDee commented 9 months ago

Here's a thought. Install the DLLs from a new version of openssl. V1.1.1 works but v3.* won't. Just download a zip file with the dlls and replace libcrypto with the new one. I'll include it in the next cpuminer-opt release.

Update: I wil update libcrypto-1_1-x64.dll to v1.1.1w in the Windows binary package in the next release.

JayDDee commented 9 months ago

cpuminer-optv3.23.3-windows2.zip has updated libcrypto-1_1-x64.dll from openssl v1.1.1w. No new release.

platinum4 commented 9 months ago

Thanks, this worked when tested on Zpool