In the master branch, the aarch64
binaries lack support for CRC32 intrinsics.
The vmull_p64
is a part of the Crypto extensions from the ACLE. They are optional extensions, so they get enabled with a +crypto
for architecture flags.
The regression was introduced in #26183 (v25.0).
The ./configure
script log excerpts:
- the master branch @ d752349029ec7a76f1fd440db2ec2e458d0f3c99:
0checking whether C++ compiler accepts -march=armv8-a+crc... yes
1checking whether C++ compiler accepts -march=armv8-a+crypto... yes
2checking for ARMv8 CRC32 intrinsics... no
3checking for ARMv8 SHA-NI intrinsics... yes
- this PR:
0checking whether C++ compiler accepts -march=armv8-a+crc+crypto... yes
1checking whether C++ compiler accepts -march=armv8-a+crypto... yes
2checking for ARMv8 CRC32 intrinsics... yes
3checking for ARMv8 SHA-NI intrinsics... yes
Guix build:
0x86_64
12afd81f540c6d3b36ff305e88bafe935e4272cd3efef3130aa69d49a0522541b guix-build-228d6a2969e4/output/aarch64-linux-gnu/SHA256SUMS.part
26c704d6d30d495adb3fb86befdb500eb389a02c1167163f14ab5c3c3e630e6b3 guix-build-228d6a2969e4/output/aarch64-linux-gnu/bitcoin-228d6a2969e4-aarch64-linux-gnu-debug.tar.gz
3e4419963c9c0d99adc4e38538900b648f2c14f793b60c8ee2e6f5acc9d3fadd3 guix-build-228d6a2969e4/output/aarch64-linux-gnu/bitcoin-228d6a2969e4-aarch64-linux-gnu.tar.gz
47d11052b6bd28cdf26d5f2a4987f02d32c93a061907bcd048fb6d161a0466ca9 guix-build-228d6a2969e4/output/dist-archive/bitcoin-228d6a2969e4.tar.gz