Bug#933533: FTBFS on x32 (due to optimize-gmp=False): Variable not in scope: unsafeShiftL :: t -> Integer -> t

Laurence Parry greenreaper at gmail.com
Sun Aug 11 04:22:18 BST 2019


On Thu, 1 Aug 2019 00:58:44 +0000 Clint Adams <clint at debian.org> wrote:
> On Wed, Jul 31, 2019 at 10:29:56AM +0100, Laurence Parry wrote:
> > The issue appears to have been reported upstream as
> > "cborg fails to compile when optimize-gmp is disabled"
> > https://github.com/well-typed/cborg/issues/193
>
> Patch applied, but I'm curious as to why optimize-gmp is False.

>From ghc's rules:

ifeq (x32,$(DEB_HOST_ARCH))
    echo "INTEGER_LIBRARY = integer-simple" >> mk/build.mk
endif

Hence https://packages.debian.org/sid/ghc shows:
dep: libgmp10 [not x32]
(as does https://packages.debian.org/unstable/libghc-cborg-dev )

This was inserted in:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=814657

I believe this may be a response to:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724320
or Adrian just having run across that issue here, per a comment in:
https://gitlab.haskell.org/ghc/ghc/issues/11571

GHC's linkage between Integer and pointers may be part of this:
https://gitlab.haskell.org/ghc/ghc/issues/8299

There is a suggestion that GMP might be replaced, but I don't know how
likely it is or whether it would help x32-style situations without the
above being resolved:
https://gitlab.haskell.org/ghc/ghc/wikis/replacing-gmp-notes
https://gitlab.haskell.org/ghc/ghc/issues/601

Performance-wise it seems to matter more for things like multiplies and divides:
http://www.mega-nerd.com/erikd/Blog/CodeHacking/Haskell/integer_pt1.html
(and probably for more complex operations).

Best regards,
--
Laurence "GreenReaper" Parry



More information about the Pkg-haskell-maintainers mailing list