GNU bug report logs - #62861
[PATCH v1] gnu: ghc-basement: fix build for i686

Previous Next

Package: guix-patches;

Reported by: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>

Date: Sat, 15 Apr 2023 14:00:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#62861: closed ([PATCH v1] gnu: ghc-basement: fix build for i686)
Date: Sun, 18 Aug 2024 20:45:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 18 Aug 2024 22:44:02 +0200
with message-id <87wmkd4l4d.fsf <at> gnu.org>
and subject line Re: bug#62861: [PATCH v1] gnu: ghc-basement: fix build for i686
has caused the debbugs.gnu.org bug report #62861,
regarding [PATCH v1] gnu: ghc-basement: fix build for i686
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
62861: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62861
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
To: guix-patches <at> gnu.org
Cc: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
Subject: [PATCH v1] gnu: ghc-basement: fix build for i686
Date: Sat, 15 Apr 2023 15:59:21 +0200
* gnu/packages/haskell-xyz.scm (ghc-basement):
  [source]: Add patch.
* gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA):
---
 gnu/local.mk                                  |   1 +
 gnu/packages/haskell-xyz.scm                  |   3 +-
 .../ghc-basement-0.0.15-i686-fix.patch        | 113 ++++++++++++++++++
 3 files changed, 116 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f0a228f19f..268ce7cc7f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1212,6 +1212,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ghc-bloomfilter-ghc9.2.patch	\
   %D%/packages/patches/ghc-bytestring-handle-ghc9.patch	\
   %D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch	\
+  %D%/packages/patches/ghc-basement-0.0.15-i686-fix.patch	\
   %D%/packages/patches/ghostscript-no-header-id.patch		\
   %D%/packages/patches/ghostscript-no-header-uuid.patch		\
   %D%/packages/patches/ghostscript-no-header-creationdate.patch \
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index f2cc60267b..1dfa627965 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -778,7 +778,8 @@ (define-public ghc-basement
               (uri (hackage-uri "basement" version))
               (sha256
                (base32
-                "1d2xj5dmjps7nc7rwp5s0kyjcg9v8xfql6ik4yk1d3affnvazhjn"))))
+                "1d2xj5dmjps7nc7rwp5s0kyjcg9v8xfql6ik4yk1d3affnvazhjn"))
+	      (patches (search-patches "ghc-basement-0.0.15-i686-fix.patch"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "basement")))
     (home-page "https://github.com/haskell-foundation/foundation#readme")
diff --git a/gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch b/gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch
new file mode 100644
index 0000000000..129af90eac
--- /dev/null
+++ b/gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch
@@ -0,0 +1,113 @@
+Description: Fix build on i686.
+ Note that this patch hasn't been applied upstream yet.
+ The patch author intends to add it to Fedora 38:
+ "I am going to try to apply this for Fedora 38.".
+Origin: https://github.com/haskell-foundation/foundation/issues/565#issuecomment-1433140571
+Bug: https://github.com/haskell-foundation/foundation/issues/565
+Author: Jens Petersen (juhp)
+---
+diff -up basement-0.0.15/Basement/Bits.hs~ basement-0.0.15/Basement/Bits.hs
+--- basement-0.0.15/Basement/Bits.hs~	2022-02-28 12:00:48.000000000 +0800
++++ basement-0.0.15/Basement/Bits.hs	2023-02-16 18:50:32.947378064 +0800
+@@ -54,7 +54,7 @@ import GHC.Int
+ import Basement.Compat.Primitive
+ 
+ #if WORD_SIZE_IN_BITS < 64
+-import GHC.IntWord64
++import GHC.Exts
+ #endif
+ 
+ -- | operation over finite bits
+diff -up basement-0.0.15/Basement/Numerical/Additive.hs~ basement-0.0.15/Basement/Numerical/Additive.hs
+--- basement-0.0.15/Basement/Numerical/Additive.hs~	2022-02-28 12:00:48.000000000 +0800
++++ basement-0.0.15/Basement/Numerical/Additive.hs	2023-02-16 18:52:14.547975419 +0800
+@@ -29,7 +29,7 @@ import qualified Basement.Types.Word128
+ import qualified Basement.Types.Word256 as Word256
+ 
+ #if WORD_SIZE_IN_BITS < 64
+-import           GHC.IntWord64
++import           GHC.Exts
+ #endif
+ 
+ -- | Represent class of things that can be added together,
+diff -up basement-0.0.15/Basement/Numerical/Conversion.hs~ basement-0.0.15/Basement/Numerical/Conversion.hs
+--- basement-0.0.15/Basement/Numerical/Conversion.hs~	2022-02-28 12:00:48.000000000 +0800
++++ basement-0.0.15/Basement/Numerical/Conversion.hs	2023-02-16 18:28:38.844400110 +0800
+@@ -25,7 +25,7 @@ import GHC.Word
+ import Basement.Compat.Primitive
+ 
+ #if WORD_SIZE_IN_BITS < 64
+-import GHC.IntWord64
++import GHC.Exts
+ #endif
+ 
+ intToInt64 :: Int -> Int64
+@@ -114,7 +114,7 @@
+ #endif
+ #else
+ word64ToWord32s :: Word64 -> Word32x2
+-word64ToWord32s (W64# w64) = Word32x2 (W32# (word64ToWord# (uncheckedShiftRL64# w64 32#))) (W32# (word64ToWord# w64))
++word64ToWord32s (W64# w64) = Word32x2 (W32# (wordToWord32# (word64ToWord# (uncheckedShiftRL64# w64 32#)))) (W32# (wordToWord32# (word64ToWord# w64)))
+ #endif
+ 
+ wordToChar :: Word -> Char
+diff -up basement-0.0.15/Basement/PrimType.hs~ basement-0.0.15/Basement/PrimType.hs
+--- basement-0.0.15/Basement/PrimType.hs~	2022-03-03 10:51:42.000000000 +0800
++++ basement-0.0.15/Basement/PrimType.hs	2023-02-16 18:52:13.884971521 +0800
+@@ -54,7 +54,7 @@ import           Basement.Nat
+ import qualified Prelude (quot)
+ 
+ #if WORD_SIZE_IN_BITS < 64
+-import           GHC.IntWord64
++import           GHC.Exts
+ #endif
+ 
+ #ifdef FOUNDATION_BOUNDS_CHECK
+diff -up basement-0.0.15/Basement/Types/OffsetSize.hs~ basement-0.0.15/Basement/Types/OffsetSize.hs
+--- basement-0.0.15/Basement/Types/OffsetSize.hs~	2019-09-02 11:58:08.000000000 +0800
++++ basement-0.0.15/Basement/Types/OffsetSize.hs	2023-02-16 18:49:45.703100306 +0800
+@@ -69,7 +69,7 @@ import Data.List (foldl')
+ import qualified Prelude
+ 
+ #if WORD_SIZE_IN_BITS < 64
+-import GHC.IntWord64
++import GHC.Exts
+ #endif
+ 
+ -- | File size in bytes
+@@ -225,7 +225,7 @@
+ 
+ csizeOfSize :: CountOf Word8 -> CSize
+ #if WORD_SIZE_IN_BITS < 64
+-csizeOfSize (CountOf (I# sz)) = CSize (W32# (int2Word# sz))
++csizeOfSize (CountOf (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
+ #else
+ #if __GLASGOW_HASKELL__ >= 904
+ csizeOfSize (CountOf (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
+@@ -238,7 +238,7 @@
+ 
+ csizeOfOffset :: Offset8 -> CSize
+ #if WORD_SIZE_IN_BITS < 64
+-csizeOfOffset (Offset (I# sz)) = CSize (W32# (int2Word# sz))
++csizeOfOffset (Offset (I# sz)) = CSize (W32# (wordToWord32# (int2Word# sz)))
+ #else
+ #if __GLASGOW_HASKELL__ >= 904
+ csizeOfOffset (Offset (I# sz)) = CSize (W64# (wordToWord64# (int2Word# sz)))
+@@ -250,7 +250,7 @@
+ sizeOfCSSize :: CSsize -> CountOf Word8
+ sizeOfCSSize (CSsize (-1))      = error "invalid size: CSSize is -1"
+ #if WORD_SIZE_IN_BITS < 64
+-sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# sz)
++sizeOfCSSize (CSsize (I32# sz)) = CountOf (I# (int32ToInt# sz))
+ #else
+ #if __GLASGOW_HASKELL__ >= 904
+ sizeOfCSSize (CSsize (I64# sz)) = CountOf (I# (int64ToInt# sz))
+@@ -261,7 +261,7 @@
+ 
+ sizeOfCSize :: CSize -> CountOf Word8
+ #if WORD_SIZE_IN_BITS < 64
+-sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# sz))
++sizeOfCSize (CSize (W32# sz)) = CountOf (I# (word2Int# (word32ToWord# sz)))
+ #else
+ #if __GLASGOW_HASKELL__ >= 904
+ sizeOfCSize (CSize (W64# sz)) = CountOf (I# (word2Int# (word64ToWord# sz)))

base-commit: a4e9842a70775a54bbe1369881b739e7ea9a6432
-- 
2.39.1



[Message part 3 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org>
Cc: 62861-done <at> debbugs.gnu.org
Subject: Re: bug#62861: [PATCH v1] gnu: ghc-basement: fix build for i686
Date: Sun, 18 Aug 2024 22:44:02 +0200
Hi GNUtoo,

Denis 'GNUtoo' Carikli <GNUtoo <at> cyberdimension.org> skribis:

> * gnu/packages/haskell-xyz.scm (ghc-basement):
>   [source]: Add patch.
> * gnu/packages/patches/ghc-basement-0.0.15-i686-fix.patch: New file.
> * gnu/local.mk (dist_patch_DATA):

It’s been a long while…  I was looking into it on ‘core-updates’ and
stumbled upon your patch.  I pushed something similar, change in a way
that avoids a rebuild on 64-bit platforms (commit
1a30e510464f5d3232f80007328b9af4dd90c6d4).

Thanks,
Ludo’.


This bug report was last modified 279 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.