You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Turned out that the official Windows ARM64 curl.exe exited with an
assert when run with a simple command like: `curl https://example.org`.
```
Assertion failed: (i == BN_BITS2) || (h <= (BN_ULONG)1 << i), file \crypto\bn\bn_div.c, line 96
```
Ref: libressl/portable#987
This issue was masked at build time, because `NDEBUG` is force-disable
in CMake builds. PR to fix that (or at least allow to set NDEBUG manually:
libressl/portable#988
When building with `NDEBUG`, there are is a list of compiler warnings:
```
In file included from libressl/crypto/bn/bn_add.c:65:
libressl/crypto/bn/arch/aarch64/bn_arch.h:35:16: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
35 | : [n]"=r"(n)
| ^
libressl/crypto/bn/arch/aarch64/bn_arch.h:34:18: note: use constraint modifier "w"
34 | __asm__ ("clz %[n], %[w]"
| ^~~~
| %w[n]
libressl/crypto/bn/arch/aarch64/bn_arch.h:36:15: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
36 | : [w]"r"(w));
| ^
libressl/crypto/bn/arch/aarch64/bn_arch.h:34:24: note: use constraint modifier "w"
34 | __asm__ ("clz %[n], %[w]"
| ^~~~
| %w[w]
libressl/crypto/bn/arch/aarch64/bn_arch.h:51:37: warning: value size does not match register size specified by the constraint and modifier [-Wasm-operand-widths]
51 | : [carry]"=r"(carry), [r0]"=r"(r0)
| ^
[...]
```
Such builds will hang with the same command instead of showing the
assert, meaning that ASM support is clearly not ready for Windows
ARM64, but this issue was masked by the NDEBUG build issue.
autotools builds have ASM disabled by default for this build case.
0 commit comments