Duncan Coutts | 7 Oct 07:50
Picon
Picon
Favicon

Re: After upgrade bytestring to 0.9.1.3, my program cannot run.

On Mon, 2008-10-06 at 20:21 -0700, Don Stewart wrote:
> magicloud.magiclouds:
> > Just a simple text process program. When I runhaskell it. I got:
> > 
> > GHCi runtime linker: fatal error: I found a duplicate definition for symbol
> >   fps_minimum
> > whilst processing object file
> >   ~/.cabal/lib/bytestring-0.9.1.3/ghc-6.8.3/HSbytestring-0.9.1.3.o

> Or try compiling it , with ghc --make

The reason is that while the Haskell code uses versioned linker symbols,
the C code in the bytestring library does not. That means both versions
define fps_minimum and a few other functions.

The system linker does not care and just picks one. The GHCi linker is
more picky and complains when two object files define the same linker
symbol. That's why you get the problem with GHCi and not ghc --make.

Duncan

Gmane