arm build failure with soft float
ffontaine opened this issue · comments
Here is an other "interesting" build failure raised on arm by buildroot autobuilders:
In file included from /home/autobuild/autobuild/instance-3/output-1/build/libdeflate-1.15/lib/arm/crc32_impl.h:256,
from /home/autobuild/autobuild/instance-3/output-1/build/libdeflate-1.15/lib/crc32.c:227:
/home/autobuild/autobuild/instance-3/output-1/host/lib/gcc/arm-buildroot-linux-gnueabi/11.3.0/include/arm_neon.h:31:2: error: #error "NEON intrinsics not available with the soft-float ABI. Please use -mfloat-abi=softfp or -mfloat-abi=hard"
31 | #error "NEON intrinsics not available with the soft-float ABI. Please use -mfloat-abi=softfp or -mfloat-abi=hard"
| ^~~~~
In file included from /home/autobuild/autobuild/instance-3/output-1/build/libdeflate-1.15/lib/crc32.c:227:
/home/autobuild/autobuild/instance-3/output-1/build/libdeflate-1.15/lib/arm/crc32_impl.h: In function 'clmul_u32':
/home/autobuild/autobuild/instance-3/output-1/build/libdeflate-1.15/lib/arm/crc32_impl.h:262:9: error: unknown type name 'uint64x2_t'; did you mean 'uint16x2_t'?
262 | uint64x2_t res = vreinterpretq_u64_p128(
| ^~~~~~~~~~
| uint16x2_t
Full build log: http://autobuild.buildroot.org/results/144/1445dcbf676893133f311a92ac21b29237fb75df/build-end.log
This build failure is raised because libdeflate is compiled by buildroot with soft float (i.e. -mfloat-abi=soft
).
One way to fix this build failure on buildroot side would be to allow the user to disable neon through a cmake variable when BR2_SOFT_FLOAT
is set.
Thanks, this was a bug introduced in v1.15: PMULL intrinsics were accidentally enabled on soft float arm32. Fixed now.