mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
gnu: ghc-memory: Fix building on i686-linux.
* gnu/packages/haskell-xyz.scm (ghc-memory)[source]: Add patch. * gnu/packages/patches/ghc-memory-fix-32bit.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Change-Id: I8dc7a13a94ce37021ad402b4e2d0cd061220f670
This commit is contained in:
parent
8c7a245a26
commit
879503464f
3 changed files with 43 additions and 1 deletions
|
@ -1272,6 +1272,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ghc-basement-fix-32bit.patch \
|
||||
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
|
||||
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \
|
||||
%D%/packages/patches/ghc-memory-fix-32bit.patch \
|
||||
%D%/packages/patches/ghostscript-CVE-2023-36664.patch \
|
||||
%D%/packages/patches/ghostscript-CVE-2023-36664-fixup.patch \
|
||||
%D%/packages/patches/ghostscript-leptonica-hurd.patch \
|
||||
|
|
|
@ -7055,7 +7055,8 @@ (define-public ghc-memory
|
|||
(uri (hackage-uri "memory" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0yl3ivvn7i9wbx910b7bzj9c3g0jjjk91j05wj74qb5zx2yyf9rk"))))
|
||||
"0yl3ivvn7i9wbx910b7bzj9c3g0jjjk91j05wj74qb5zx2yyf9rk"))
|
||||
(patches (search-patches "ghc-memory-fix-32bit.patch"))))
|
||||
(build-system haskell-build-system)
|
||||
(properties '((upstream-name . "memory")))
|
||||
(inputs (list ghc-basement))
|
||||
|
|
40
gnu/packages/patches/ghc-memory-fix-32bit.patch
Normal file
40
gnu/packages/patches/ghc-memory-fix-32bit.patch
Normal file
|
@ -0,0 +1,40 @@
|
|||
https://github.com/vincenthz/hs-memory/commit/2738929ce15b4c8704bbbac24a08539b5d4bf30e.patch
|
||||
https://github.com/vincenthz/hs-memory/pull/99
|
||||
Adjusted so the '904' becomes '902'
|
||||
|
||||
From 2738929ce15b4c8704bbbac24a08539b5d4bf30e Mon Sep 17 00:00:00 2001
|
||||
From: sternenseemann <sternenseemann@systemli.org>
|
||||
Date: Mon, 14 Aug 2023 10:51:30 +0200
|
||||
Subject: [PATCH] Data.Memory.Internal.CompatPrim64: fix 32 bit with GHC >= 9.4
|
||||
|
||||
Since 9.4, GHC.Prim exports Word64# operations like timesWord64# even on
|
||||
i686 whereas GHC.IntWord64 no longer exists. Therefore, we can just use
|
||||
the ready made solution.
|
||||
|
||||
Closes #98, as it should be the better solution.
|
||||
---
|
||||
Data/Memory/Internal/CompatPrim64.hs | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Data/Memory/Internal/CompatPrim64.hs b/Data/Memory/Internal/CompatPrim64.hs
|
||||
index b9eef8a..a134c88 100644
|
||||
--- a/Data/Memory/Internal/CompatPrim64.hs
|
||||
+++ b/Data/Memory/Internal/CompatPrim64.hs
|
||||
@@ -150,6 +150,7 @@ w64# :: Word# -> Word# -> Word# -> Word64#
|
||||
w64# w _ _ = w
|
||||
|
||||
#elif WORD_SIZE_IN_BITS == 32
|
||||
+#if __GLASGOW_HASKELL__ < 902
|
||||
import GHC.IntWord64
|
||||
import GHC.Prim (Word#)
|
||||
|
||||
@@ -158,6 +159,9 @@ timesWord64# a b =
|
||||
let !ai = word64ToInt64# a
|
||||
!bi = word64ToInt64# b
|
||||
in int64ToWord64# (timesInt64# ai bi)
|
||||
+#else
|
||||
+import GHC.Prim
|
||||
+#endif
|
||||
|
||||
w64# :: Word# -> Word# -> Word# -> Word64#
|
||||
w64# _ hw lw =
|
Loading…
Reference in a new issue