From: Gwen Weinholt <git@weinholt.se>
Date: Sun, 12 Jan 2025 22:55:40 +0100
Subject: Define SCM_LLONG on 64-bit archs

---
 scmfig.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/scmfig.h b/scmfig.h
index ed5f732..999c3f2 100644
--- a/scmfig.h
+++ b/scmfig.h
@@ -259,13 +259,22 @@ rgx.c	init_rgx();	regcomp and regexec. */
 #ifdef __aarch64__
 # define SHORT_INT
 # define CDR_DOUBLES
+# ifdef __GNUC__                /* Includes gcc, clang, and llvm-gcc */
+#  define SCM_LLONG __int128
+# endif
 #endif
 #ifdef __alpha
 # define SHORT_INT
+# ifdef __GNUC__                /* Includes gcc, clang, and llvm-gcc */
+#  define SCM_LLONG __int128
+# endif
 #endif
 #ifdef __ia64__
 # define SHORT_INT
 # define CDR_DOUBLES
+# ifdef __GNUC__                /* Includes gcc, clang, and llvm-gcc */
+#  define SCM_LLONG __int128
+# endif
 #endif
 #ifdef __x86_64
 # define SHORT_INT
@@ -284,18 +293,30 @@ rgx.c	init_rgx();	regcomp and regexec. */
 #ifdef __powerpc64__
 # define SHORT_INT
 # define CDR_DOUBLES
+# ifdef __GNUC__                /* Includes gcc, clang, and llvm-gcc */
+#  define SCM_LLONG __int128
+# endif
 #endif
 #ifdef __mips64
 # define SHORT_INT
 # define CDR_DOUBLES
+# ifdef __GNUC__                /* Includes gcc, clang, and llvm-gcc */
+#  define SCM_LLONG __int128
+# endif
 #endif
 #ifdef __riscv
 # define SHORT_INT
 # define CDR_DOUBLES
+# ifdef __GNUC__                /* Includes gcc, clang, and llvm-gcc */
+#  define SCM_LLONG __int128
+# endif
 #endif
 #ifdef __s390x__
 # define SHORT_INT
 # define CDR_DOUBLES
+# ifdef __GNUC__                /* Includes gcc, clang, and llvm-gcc */
+#  define SCM_LLONG __int128
+# endif
 #endif
 #ifdef __loongarch64
 # define SHORT_INT
