diff -bur jsonnet-0.20.0-o/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float/include/fast_float/float_common.h jsonnet-0.20.0/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float/include/fast_float/float_common.h
--- jsonnet-0.20.0-o/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float/include/fast_float/float_common.h	2025-04-26 15:36:14.324363700 -0600
+++ jsonnet-0.20.0/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float/include/fast_float/float_common.h	2025-04-26 15:37:59.341711900 -0600
@@ -161,8 +161,13 @@
                                                      uint64_t b) {
   value128 answer;
 #ifdef _M_ARM64
+#ifdef __GNUC__
+  __uint128_t mul = ((__uint128_t)a) * b;
+  answer.high = mul >> 64;
+#else
   // ARM64 has native support for 64-bit multiplications, no need to emulate
   answer.high = __umulh(a, b);
+#endif 
   answer.low = a * b;
 #elif defined(FASTFLOAT_32BIT) || (defined(_WIN64) && !defined(__clang__))
   answer.low = _umul128(a, b, &answer.high); // _umul128 not available on ARM64
diff -bur jsonnet-0.20.0-o/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/windows_pop.hpp jsonnet-0.20.0/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/windows_pop.hpp
--- jsonnet-0.20.0-o/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/windows_pop.hpp	2025-04-26 15:36:14.304344400 -0600
+++ jsonnet-0.20.0/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/windows_pop.hpp	2025-04-26 15:36:38.916843100 -0600
@@ -13,6 +13,10 @@
 #    undef _c4_ARM_
 #    undef _ARM_
 #endif
+#ifdef _c4_ARM64_
+#    undef _c4_ARM64_
+#    undef _ARM64_
+#endif
 
 #ifdef _c4_NOMINMAX
 #    undef _c4_NOMINMAX
diff -bur jsonnet-0.20.0-o/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/windows_push.hpp jsonnet-0.20.0/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/windows_push.hpp
--- jsonnet-0.20.0-o/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/windows_push.hpp	2025-04-26 15:36:14.332363500 -0600
+++ jsonnet-0.20.0/third_party/rapidyaml/rapidyaml/ext/c4core/src/c4/windows_push.hpp	2025-04-26 15:37:10.262450900 -0600
@@ -8,7 +8,12 @@
  *
  * @see https://aras-p.info/blog/2018/01/12/Minimizing-windows.h/ */
 
-#if defined(_WIN64)
+#if defined(_M_ARM64)
+#   ifndef _ARM64_
+#       define _c4_ARM64_
+#       define _ARM64_
+#   endif
+#elif defined(_WIN64)
 #   ifndef _AMD64_
 #       define _c4_AMD64_
 #       define _AMD64_
