From 7fbf4a847476dcfe4eaa42d48353ea5962e7d7c7 Mon Sep 17 00:00:00 2001
From: Nehal J Wani <nehaljw.kkd1@gmail.com>
Date: Sun, 24 Oct 2021 15:21:38 -0400
Subject: [PATCH 17/21] Add workaround for a bug in GCC v9.4.0 (aarch64)

xref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100985
---
 include/my_checksum.h        | 6 ++++++
 storage/innobase/ut/crc32.cc | 6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/include/my_checksum.h b/include/my_checksum.h
index 524c3194c1b..deb0fafcd11 100644
--- a/include/my_checksum.h
+++ b/include/my_checksum.h
@@ -41,6 +41,12 @@
 
 #ifdef HAVE_ARMV8_CRC32_INTRINSIC
 #include <arm_acle.h>   // __crc32x
+#if defined(__aarch64__) && defined(__GNUC__)
+#if __GNUC__ == 9 && __GNUC_MINOR__ == 4 && __GNUC_PATCHLEVEL__ == 0
+}
+#endif
+#endif
+
 #ifndef APPLE_ARM
 #include <asm/hwcap.h>  // HWCAP_CRC32
 #include <sys/auxv.h>   // getauxval
diff --git a/storage/innobase/ut/crc32.cc b/storage/innobase/ut/crc32.cc
index 3e2fb2743fe..c1ed0ae451d 100644
--- a/storage/innobase/ut/crc32.cc
+++ b/storage/innobase/ut/crc32.cc
@@ -107,7 +107,13 @@ external tools. */
 
 #ifdef CRC32_ARM64
 #include <arm_acle.h>
+#if defined(__aarch64__) && defined(__GNUC__)
+#if __GNUC__ == 9 && __GNUC_MINOR__ == 4 && __GNUC_PATCHLEVEL__ == 0
+}
+#endif
+#endif
 #include <arm_neon.h>
+
 #endif /* CRC32_ARM64 */
 
 #ifdef CRC32_ARM64_DEFAULT
-- 
2.41.0

