0
votes

I'm trying to install the GD library for Haskell on Windows with cabal, but I'm getting the following error from GCC:

Resolving dependencies...
Configuring gd-3000.6.1...
Preprocessing library gd-3000.6.1...
Building gd-3000.6.1...
[1 of 4] Compiling Graphics.GD.Internal ( dist\build\Graphics\GD\Internal.hs, dist\build\Graphics\GD\Internal.o )
[2 of 4] Compiling Graphics.GD.ByteString.Lazy ( Graphics\GD\ByteString\Lazy.hs, dist\build\Graphics\GD\ByteString\Lazy.o )
[3 of 4] Compiling Graphics.GD.ByteString ( Graphics\GD\ByteString.hs, dist\build\Graphics\GD\ByteString.o )
[4 of 4] Compiling Graphics.GD      ( dist\build\Graphics\GD.hs, dist\build\Graphics\GD.o ) cbits\gd-extras.c: In function `gdImagePtrDestroyIfNotNull':

cbits\gd-extras.c:10:0:
     internal compiler error: in rest_of_handle_final, at toplev.c:2067
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
cabal: Error: some packages failed to install:
gd-3000.6.1 failed during the building phase. The exception was:
ExitFailure 1

Googling for "rest_of_handle_final toplev.c 2067" gets several hits for similar problems with other libraries, and a link to GCC bug #23589. The latest Haskell Platform for Windows (2010.2.0.0) comes with GHC 6.12.3 and gcc 3.4.5, so how could I get around this? Can I force cabal to use a newer version of gcc somehow (I have gcc 4.5.2 via MinGW), and would that even help?

If anyone has compiled the GD library successfully on Windows, I could use some tips.

1
Have you tried HP 2011.2, which is now the latest?Thomas M. DuBuisson

1 Answers

1
votes

Three possible solutions, some you might not like:

  1. Use cabal install --with-gcc=... to select the desired gcc.
  2. Use the latest Haskell platform which might have a newer gcc (the page doesn't say).
  3. Use an operating system with a package manager so you don't depend on the Haskell compiler being tightly coupled with a C compiler which they might have little inclination to update.