gentoo/dev-db/mysql/files/mysql-8.0.37-fix-bundled-abseil.patch
Alfred Wingate a18cfdc0a8
dev-db/mysql: fix abseil-cpp issue with certain compiler flags
* Use patch supplied by Byron Stanoszek.

Closes: https://bugs.gentoo.org/935508
Signed-off-by: Alfred Wingate <parona@protonmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
2025-01-09 10:31:58 +00:00

31 lines
1.2 KiB
Diff

https://bugs.gentoo.org/935508
Context:
https://bugs.gentoo.org/934337
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112789
--- mysql/extra/abseil/abseil-cpp-20230802.1/absl/numeric/internal/bits.h.bak
+++ mysql/extra/abseil/abseil-cpp-20230802.1/absl/numeric/internal/bits.h
@@ -167,7 +167,9 @@ CountLeadingZeroes32(uint32_t x) {
ABSL_ATTRIBUTE_ALWAYS_INLINE ABSL_INTERNAL_CONSTEXPR_CLZ inline int
CountLeadingZeroes16(uint16_t x) {
-#if ABSL_HAVE_BUILTIN(__builtin_clzs)
+#if ABSL_HAVE_BUILTIN(__builtin_clzg)
+ return x == 0 ? 16 : __builtin_clzg(x);
+#elif ABSL_HAVE_BUILTIN(__builtin_clzs)
static_assert(sizeof(unsigned short) == sizeof(x), // NOLINT(runtime/int)
"__builtin_clzs does not take 16-bit arg");
return x == 0 ? 16 : __builtin_clzs(x);
@@ -303,7 +305,9 @@ CountTrailingZeroesNonzero64(uint64_t x) {
ABSL_ATTRIBUTE_ALWAYS_INLINE ABSL_INTERNAL_CONSTEXPR_CTZ inline int
CountTrailingZeroesNonzero16(uint16_t x) {
-#if ABSL_HAVE_BUILTIN(__builtin_ctzs)
+#if ABSL_HAVE_BUILTIN(__builtin_ctzg)
+ return __builtin_ctzg(x);
+#elif ABSL_HAVE_BUILTIN(__builtin_ctzs)
static_assert(sizeof(unsigned short) == sizeof(x), // NOLINT(runtime/int)
"__builtin_ctzs does not take 16-bit arg");
return __builtin_ctzs(x);