After upgrade bytestring to 0.9.1.3, my program cannot run.

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 This could be caused by: * Loading two different object files which export the same symbol * Specifying the same object file twice on the GHCi command line * An incorrect `package.conf' entry, causing some object to be loaded twice. GHCi cannot safely continue in this situation. Exiting now. Sorry.

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 This could be caused by: * Loading two different object files which export the same symbol * Specifying the same object file twice on the GHCi command line * An incorrect `package.conf' entry, causing some object to be loaded twice. GHCi cannot safely continue in this situation. Exiting now. Sorry.
This likely means your program is using some package A, that has been compiled against (and loading) old bytestring, but also loading the new bytestring. The solution is to recompile whatever your library 'A' is that is trying to use the old bytestring. Or try compiling it , with ghc --make -- Don

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
participants (3)
-
Don Stewart
-
Duncan Coutts
-
Magicloud