[Haskell-cafe] duplicate definition for symbol

austin s as at nijoruj.org
Fri Jun 19 13:20:19 EDT 2009


Excerpts from Henk-Jan van Tuyl's message of Fri Jun 19 09:06:50 -0500 2009:
> 
> L.S.,
> 
> I am trying to run a program in GHCi, but I get a meesage that an object  
> file is loaded twice; it appears that two different versions of package  
> "process" are loaded, see the session text below. How can I solve this?
> 
> 
> GHCi, version 6.10.1: http://www.haskell.org/ghc/  :? for help
> Loading package ghc-prim ... linking ... done.
> Loading package integer ... linking ... done.
> Loading package base ... linking ... done.
> Prelude> :load "Main.lhs"
> [1 of 1] Compiling Main             ( Main.lhs, interpreted )
> Ok, modules loaded: Main.
> *Main> :main
> Loading package syb ... linking ... done.
> Loading package base-3.0.3.0 ... linking ... done.
> Loading package array-0.2.0.0 ... linking ... done.
> Loading package containers-0.2.0.0 ... linking ... done.
> Loading package bytestring-0.9.1.4 ... linking ... done.
> Loading package old-locale-1.0.0.1 ... linking ... done.
> Loading package old-time-1.0.0.1 ... linking ... done.
> Loading package filepath-1.1.0.1 ... linking ... done.
> Loading package Win32-2.2.0.0 ... linking ... done.
> Loading package directory-1.0.0.2 ... linking ... done.
> Loading package random-1.0.0.1 ... linking ... done.
> Loading package time-1.1.2.2 ... linking ... done.
> Loading package stm-2.1.1.2 ... linking ... done.
> Loading package split-0.1.1 ... linking ... done.
> Loading package HUnit-1.2.0.3 ... linking ... done.
> Loading package QuickCheck-1.2.0.0 ... linking ... done.
> Loading package process-1.0.1.1 ... linking ... done.
> Loading package haskell98 ... linking ... done.
> Loading package mtl-1.1.0.2 ... linking ... done.
> Loading package parsec-2.1.0.1 ... linking ... done.
> Loading package network-2.2.0.1 ... linking ... done.
> Loading package hslogger-1.0.7 ... linking ... done.
> Loading package process-1.0.1.0 ...
> 
> GHCi runtime linker: fatal error: I found a duplicate definition for symbol
>     _runInteractiveProcess
> whilst processing object file
>     C:\Programs\ghc\ghc-6.10.1\process-1.0.1.0\HSprocess-1.0.1.0.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.
> 
> 

The easiest solution would simply be to 'ghc-pkg unregister
process-1.0.1.1', and then rebuild all the packages that depend on it
against process-1.0.1.0.

The reason this is happening is simply because you have two libraries
you depend on, each of which depends on a different version of
process.

It's a fairly annoying error, that is prone to happen when you have
upgraded versions of GHC's bootlibs (i.e. necessary libraries for
GHC installation.)

Austin


More information about the Haskell-Cafe mailing list