mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-29 13:31:43 -09:00
package/libabseil-cpp: fix build on x86 32-bit with AES
Since the bump to version 20260817.0, the AES-based hash for long strings is used whenever __SSE4_2__ and __AES__ are defined. It relies on _mm_cvtsi128_si64() and _mm_extract_epi64(), which are only available on x86_64, so the build fails on 32-bit x86 for CPUs that support SSE4.2 and AES: hash.cc:115:32: error: '_mm_cvtsi128_si64' was not declared in this scope Add a patch from a pending upstream pull request restricting this code path to x86_64. Fixes: https://autobuild.buildroot.org/results/48198506ef76c6ebad0a802cb1fdd5270494eae1 Assisted-by: Claude:claude-opus-5 Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
committed by
Thomas Petazzoni
parent
66c1665642
commit
54ccee7e67
@@ -0,0 +1,33 @@
|
||||
From 66cd3bf8a9c19f03c5b0bf58031ab8176fb5608a Mon Sep 17 00:00:00 2001
|
||||
From: Jaipaul Cheernam <jaipaul.cheernam@est.tech>
|
||||
Date: Thu, 24 Sep 2026 14:59:26 +0000
|
||||
Subject: [PATCH] Fix 32-bit x86 build of hash.cc
|
||||
|
||||
The x86 AES SIMD path in absl/hash/internal/hash.cc uses the 64-bit-only
|
||||
_mm_cvtsi128_si64 and _mm_extract_epi64 intrinsics but is gated only on
|
||||
__SSE4_2__ && __AES__, so 32-bit x86 builds fail to compile.
|
||||
|
||||
Require __x86_64__/_M_X64 for that path, matching the existing guard in
|
||||
absl/crc/internal/crc32_x86_arm_combined_simd.h.
|
||||
|
||||
Fixes: https://github.com/abseil/abseil-cpp/issues/2176
|
||||
Upstream: https://github.com/abseil/abseil-cpp/pull/2177
|
||||
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
|
||||
---
|
||||
absl/hash/internal/hash.cc | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/absl/hash/internal/hash.cc b/absl/hash/internal/hash.cc
|
||||
index 43cb561..ef85625 100644
|
||||
--- a/absl/hash/internal/hash.cc
|
||||
+++ b/absl/hash/internal/hash.cc
|
||||
@@ -28,7 +28,8 @@
|
||||
|
||||
#ifdef ABSL_AES_INTERNAL_HAVE_X86_SIMD
|
||||
#error ABSL_AES_INTERNAL_HAVE_X86_SIMD cannot be directly set
|
||||
-#elif defined(__SSE4_2__) && defined(__AES__)
|
||||
+#elif defined(__SSE4_2__) && defined(__AES__) && \
|
||||
+ (defined(__x86_64__) || defined(_M_X64))
|
||||
#define ABSL_AES_INTERNAL_HAVE_X86_SIMD
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user