package/libdeflate: fix build with arm soft float

Fix the following build failure with arm soft float raised since bump to
version 1.15 in commit c31087182f and
84c76f6f2c:

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

Fixes:
 - http://autobuild.buildroot.org/results/1445dcbf676893133f311a92ac21b29237fb75df

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023.02.x
Fabrice Fontaine 2022-12-26 22:19:10 +01:00 committed by Thomas Petazzoni
parent 83b2e53dcd
commit c181878a84
1 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,35 @@
From 079a6dd171583c1953017b703ec63c5367a284b4 Mon Sep 17 00:00:00 2001
From: Eric Biggers <ebiggers3@gmail.com>
Date: Mon, 26 Dec 2022 11:32:47 -0800
Subject: [PATCH] lib/arm/cpu_features: fix build error due to PMULL enabled
without NEON
When building for soft float arm32, HAVE_PMULL_INTRIN is being set when
it shouldn't be, causing a build error:
#error "NEON intrinsics not available with the soft-float ABI..."
Fix this by making HAVE_PMULL_INTRIN depend on HAVE_NEON_INTRIN, as used
to be the case, in order to get the 'defined(__ARM_FP)' dependency,
Fixes https://github.com/ebiggers/libdeflate/issues/282
Fixes: 84c76f6f2cf5 ("lib/arm: make crc32 code work with MSVC")
[Retrieved from:
https://github.com/ebiggers/libdeflate/commit/079a6dd171583c1953017b703ec63c5367a284b4]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
lib/arm/cpu_features.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/arm/cpu_features.h b/lib/arm/cpu_features.h
index 4092eba8..edcf7359 100644
--- a/lib/arm/cpu_features.h
+++ b/lib/arm/cpu_features.h
@@ -97,6 +97,7 @@ static inline u32 get_arm_cpu_features(void) { return 0; }
#endif
#if HAVE_PMULL_NATIVE || \
(HAVE_DYNAMIC_ARM_CPU_FEATURES && \
+ HAVE_NEON_INTRIN /* needed to exclude soft float arm32 case */ && \
(GCC_PREREQ(6, 1) || __has_builtin(__builtin_neon_vmull_p64) || \
defined(_MSC_VER)) && \
/*