portable icon indicating copy to clipboard operation
portable copied to clipboard

cmake: disable ARM64 ASM on Windows

Open vszakats opened this issue 1 month ago • 2 comments

ARM64 ASM on Windows generates a lot of -Wasm-operand-widths compiler warnings (with llvm/clang). It also seems to break bignum calculations, resulting in:

curl: (35) TLS connect error: error:04FFF077:rsa routines:CRYPTO_internal:wrong signature length

and other issues.

This option did not cause an issue with MSVC ARM64. The reason for this is that the only ASM code for ARM64 is the bignum implementation (crypto/bn/arch/aarch64) and that ASM code is guarded for __GNUC__, meaning gcc and llvm/clang, and never MSVC or clang-cl.

Follow-up to 1df6b52b250f04cd322bf7a79e2105f9ed890802 #1177 Fixes #1210

vszakats avatar Oct 29 '25 21:10 vszakats

Thanks. I'll leave it to @4a6f656c and @busterb to puzzle this out. It smells a bit like the usual long vs long long issue with bignums on Windows.

botovq avatar Oct 29 '25 21:10 botovq

Thanks. I'll leave it to @4a6f656c and @busterb to puzzle this out. It smells a bit like the usual long vs long long issue with bignums on Windows.

You're very welcome. Yes, that matches my impression.

(Amended the patch to avoid checking DEFINED. This point is past options(ENABLE_ASM ...) so it doesn't work. Going with simply forcing false. It can be deleted once the ASM code is implemented for Windows.)

vszakats avatar Oct 29 '25 21:10 vszakats