On Thu, 2009-10-08 at 19:27 +0100, Colin Paul Adams wrote:
> I've been using ghc 6.10.3 on 64-bit Linux to compile my application,
> and it runs OK, modulo bugs.
> 
> I want to debug a problem, so I load it in ghci, but when i type main
> I get:
> 
>  Loading package network-2.2.1.1 ... 
> 
> GHCi runtime linker: fatal error: I found a duplicate definition for symbol
>    my_inet_ntoa
> whilst processing object file
>    /usr/lib64/ghc-6.10.3/network-2.2.1.1/HSnetwork-2.2.1.1.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.
> 
> Why would ghci have a problem, but not ghc?

Because the system linker does not care about duplicate definitions for
symbols. It just merrily picks the first one and resolves all references
to point that first one. The GHCi linker is a tad more careful.

What you're probably doing is loading two versions of the network
package (eg indirectly as a dependencies of other packages) and they
both have an unversioned C symbol in them. The Haskell symbols are all
versioned which is why they do not clash.

Duncan

_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to