diff --git a/clisp-32bit.patch b/clisp-32bit.patch new file mode 100644 index 0000000..a9ef63e --- /dev/null +++ b/clisp-32bit.patch @@ -0,0 +1,22 @@ +--- src/lispbibl.d.orig 2017-01-28 11:49:38.000000000 -0700 ++++ src/lispbibl.d 2017-01-28 14:35:20.257552567 -0700 +@@ -1421,7 +1421,6 @@ typedef SLONG sint32; /* signed 32 bi + #define intLsize 32 + typedef signed_int_with_n_bits(intLsize) sintL; + typedef unsigned_int_with_n_bits(intLsize) uintL; +-#if (long_bitsize==64) || defined(DECALPHA) || defined(MIPS64) || defined(SPARC64) || defined(IA64) || defined(AMD64) + /* Machine has real 64-bit integers in hardware. */ + #define intQsize 64 + typedef signed_int_with_n_bits(intQsize) sintQ; +@@ -1440,11 +1439,6 @@ typedef SLONG sint32; /* signed 32 bi + #define minus_bitQm(n) (-(sintQ)2<<((n)-1)) + typedef sintQ sintL2; + typedef uintQ uintL2; +-#else +- /* Emulate 64-Bit-numbers using two 32-Bit-numbers. */ +- typedef struct { sintL hi; uintL lo; } sintL2; /* signed 64 Bit integer */ +- typedef struct { uintL hi; uintL lo; } uintL2; /* unsigned 64 Bit integer */ +-#endif + /* Use 'uintX' and 'sintX' for Integers with approximately given width + and a minumum of storage space. */ + %% sprintf(buf,"sint%d",intBsize); emit_typedef(buf,"sintB"); diff --git a/clisp.spec b/clisp.spec index 8886b75..bff6465 100644 --- a/clisp.spec +++ b/clisp.spec @@ -25,6 +25,8 @@ Patch2: %{name}-libsvm.patch Patch3: %{name}-db.patch # Linux-specific fixes. Sent upstream 25 Jul 2012. Patch4: %{name}-linux.patch +# Fix for 32-bit compilation. Sent upstream 28 Jan 2017. +Patch5: %{name}-32bit.patch BuildRequires: compat-readline5-devel BuildRequires: dbus-devel @@ -97,6 +99,7 @@ Files necessary for linking CLISP programs. %patch2 %patch3 %patch4 +%patch5 # Convince CLisp to build against compat-readline5 instead of readline. # This is to avoid pulling the GPLv3 readline 6 into a GPLv2 CLisp binary.