From 54ccee7e6763801a48451cac52e9cb93ebee3b7c Mon Sep 17 00:00:00 2001 From: Yegor Yefremov Date: Fri, 25 Sep 2026 15:35:36 +0200 Subject: [PATCH] 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 Signed-off-by: Thomas Petazzoni --- ...0002-Fix-32-bit-x86-build-of-hash.cc.patch | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 package/libabseil-cpp/0002-Fix-32-bit-x86-build-of-hash.cc.patch diff --git a/package/libabseil-cpp/0002-Fix-32-bit-x86-build-of-hash.cc.patch b/package/libabseil-cpp/0002-Fix-32-bit-x86-build-of-hash.cc.patch new file mode 100644 index 0000000000..1a289fe115 --- /dev/null +++ b/package/libabseil-cpp/0002-Fix-32-bit-x86-build-of-hash.cc.patch @@ -0,0 +1,33 @@ +From 66cd3bf8a9c19f03c5b0bf58031ab8176fb5608a Mon Sep 17 00:00:00 2001 +From: Jaipaul Cheernam +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 +--- + 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 +