Commit 98936a0a authored by Ole Streicher's avatar Ole Streicher
Browse files

don't try to use 128-bit types on 32-bit platforms

parent b9ebf5d6
Pipeline #338322 failed with stages
in 15 minutes and 2 seconds
From: Dustin Lang <dstndstn@gmail.com>
Date: Mon, 17 Jan 2022 07:47:26 -0500
Subject: don't try to use 128-bit types on 32-bit platforms
---
libkd/kdint_ttype_l.h | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/libkd/kdint_ttype_l.h b/libkd/kdint_ttype_l.h
index 475064c..a407074 100644
--- a/libkd/kdint_ttype_l.h
+++ b/libkd/kdint_ttype_l.h
@@ -5,15 +5,27 @@
typedef u64 ttype;
+// https://stackoverflow.com/questions/16088282/is-there-a-128-bit-integer-in-gcc
+// gcc: 128-bit ints only available on 64-bit platforms, not 32-bit
+#ifdef __SIZEOF_INT128__
// GCC only??
typedef __int128 int128_t;
typedef unsigned __int128 uint128_t;
static const uint128_t UINT128_MAX = (uint128_t)((int128_t)(-1L));
-
#define BIGTTYPE uint128_t
#define BIGTTYPE_MAX UINT128_MAX
typedef uint128_t bigttype;
+#else
+// Fall back to using just 64-bit types. This *should* still work okay, because
+// we're careful to check the max possible value before using BIGT types; search
+// for "use_tmath" in the code.
+#define BIGTTYPE uint64_t
+#define BIGTTYPE_MAX UINT64_MAX
+typedef uint64_t bigttype;
+
+#endif
+
#define TTYPE_INTEGER 1
#define TTYPE_MIN 0
......@@ -6,3 +6,4 @@ Fix-shared-lib-flags-so-that-the-package-can-be-built-on-.patch
Remove-errornous-generation-of-net-client.py.patch
Don-t-fail-on-rm-during-make-clean.patch
Don-t-copy-demo-files-to-examples.patch
don-t-try-to-use-128-bit-types-on-32-bit-platforms.patch
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment