[haskell-llvm] fatal error with ghci and llvm

José Romildo Malaquias j.romildo at gmail.com
Fri Nov 23 21:58:26 CET 2012


On Fri, Nov 23, 2012 at 09:34:19PM +0100, Henning Thielemann wrote:
> 
> On Fri, 23 Nov 2012, José Romildo Malaquias wrote:
> 
> > When experimenting with the module LLVM.Core in GHCi on my gentoo linux
> > system, I have got a fatal error:
> >
> >
> > $ ghci
> > GHCi, version 7.6.1: http://www.haskell.org/ghc/  :? for help
> > Loading package ghc-prim ... linking ... done.
> > Loading package integer-gmp ... linking ... done.
> > Loading package base ... linking ... done.
> >
> > Prelude> :m + LLVM.Core
> >
> > Prelude LLVM.Core> IntEQ
> > Loading package llvm-base-3.0.1.0 ...
> >
> > GHCi runtime linker: fatal error: I found a duplicate definition for symbol
> >   LLVMAddAlwaysInlinerPass
> > whilst processing object file
> >   /usr/lib64/llvm/libLLVMipo.a
> > 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.
> 
> There are problems with the configure procedure of llvm-base. The 
> configure file fetches the llvm-base.buildinfo.in file and replaces the 
> variables with informations for your system. The result ends up in
>    ~/.ghc/your-ghc-version/package.conf.d/llvm-base-3.0.0.1-some-hash.conf
> 
> You may post the content of this file for further diagnostics.

The packages have been installed using the package manager on my gentoo
linux system. So I do not have the above mentioned file. But I could
locate the following files on the system:

$ locate -i -r 'llvm-base.*conf'
/usr/lib64/ghc-7.6.1/gentoo/llvm-base-3.0.1.0.conf
/usr/lib64/ghc-7.6.1/package.conf.d/llvm-base-3.0.1.0-0a76b512a47d36e81e4c0b82deb34fb6.conf

I am attaching the second one.

> You said earlier that you use a custom path for llvm. Maybe you have
> conflicts between two versions, one in /usr/lib and one in
> /usr/local/lib?

I did not say that. Probably it was another person.

Romildo
-------------- next part --------------
name: llvm-base
version: 3.0.1.0
id: llvm-base-3.0.1.0-0a76b512a47d36e81e4c0b82deb34fb6
license: BSD3
copyright:
maintainer: Bryan O'Sullivan <bos at serpentine.com>, Lennart Augustsson <lennart at augustsson.net>
stability: experimental
homepage: https://github.com/bos/llvm
package-url:
synopsis: FFI bindings to the LLVM compiler toolkit.
description: FFI bindings to the LLVM compiler toolkit.
             .
             We try to stay up to date with LLVM releases.  The current version
             of this package is compatible with LLVM 3.0 and 2.9.  Please
             understand that the package may or may not work against older LLVM
             releases; we don't have the time or resources to test across
             multiple releases.
             .
             * New in 3.0: Builds against LLVM 3.0.
             .
             * New in 0.9.1.1: Builds against LLVM 2.9.
             .
             * New in 0.9.1.0: Util.Memory for memory related intrinsics.
             .
             * New in 0.9.0.0: Adapted to LLVM 2.8 (removed support for Union types).
category: Compilers/Interpreters, Code Generation
author: Bryan O'Sullivan, Lennart Augustsson
exposed: True
exposed-modules: LLVM.FFI.Analysis LLVM.FFI.BitReader
                 LLVM.FFI.BitWriter LLVM.FFI.Core LLVM.FFI.ExecutionEngine
                 LLVM.FFI.Support LLVM.FFI.Target LLVM.FFI.Transforms.IPO
                 LLVM.FFI.Transforms.Scalar LLVM.Target.Native
hidden-modules: LLVM.Target.ARM LLVM.Target.Alpha
                LLVM.Target.Blackfin LLVM.Target.CBackend LLVM.Target.CellSPU
                LLVM.Target.CppBackend LLVM.Target.MSP430 LLVM.Target.Mips
                LLVM.Target.PIC16 LLVM.Target.PowerPC LLVM.Target.Sparc
                LLVM.Target.SystemZ LLVM.Target.X86 LLVM.Target.XCore
trusted: False
import-dirs: /usr/lib64/llvm-base-3.0.1.0/ghc-7.6.1
library-dirs: /usr/lib64/llvm-base-3.0.1.0/ghc-7.6.1
              /usr/lib64/llvm
hs-libraries: HSllvm-base-3.0.1.0
extra-libraries: LLVMCppBackendCodeGen LLVMCppBackendInfo
                 LLVMAsmParser LLVMTableGen LLVMDebugInfo LLVMX86CodeGen
                 LLVMSelectionDAG LLVMAsmPrinter LLVMX86AsmParser
                 LLVMX86Disassembler LLVMX86Desc LLVMX86Info LLVMX86AsmPrinter
                 LLVMX86Utils LLVMJIT LLVMMCDisassembler LLVMMCParser
                 LLVMInstrumentation LLVMInterpreter LLVMCodeGen LLVMipo
                 LLVMVectorize LLVMScalarOpts LLVMInstCombine LLVMLinker
                 LLVMTransformUtils LLVMipa LLVMAnalysis LLVMArchive LLVMBitReader
                 LLVMBitWriter LLVMMCJIT LLVMRuntimeDyld LLVMExecutionEngine
                 LLVMTarget LLVMMC LLVMObject LLVMCore LLVMSupport pthread ffi dl m
                 stdc++
extra-ghci-libraries:
include-dirs: /usr/include
includes:
depends: base-4.6.0.0-a185df46634bc441afa481f4882ed78a
hugs-options:
cc-options:
ld-options:
framework-dirs:
frameworks:
haddock-interfaces: /usr/share/doc/llvm-base-3.0.1.0/html/llvm-base.haddock
haddock-html: /usr/share/doc/llvm-base-3.0.1.0/html


More information about the Glasgow-haskell-users mailing list