[haskell-llvm] Towards 0.10

Mark Wright markwright at internode.on.net
Sat Jul 16 13:36:55 BST 2011


On Sat, 16 Jul 2011 12:40:34 +0200 (CEST), Henning Thielemann <lemming at henning-thielemann.de> wrote:
> 
> On Thu, 14 Jul 2011, Henning Thielemann wrote:
> 
> > Because of that missing LLVMOpaqueValue and there is no proposed fix so far 
> > ...
> >
> > I moved forward again to git-HEAD and cannot even compile the package 
> > anymore:
> >
> > $ cabal build
> > ...
> > cbits/extra.cpp:37:28:
> >     error: hs_llvm_config.h: file or directory not found
> 
> I have rebuilt 'configure' using autoconf and now hs_llvm_config.h is 
> generated at configure time.
> 
> But the LLVMOpaqueValue symbol is still missing in GHCi.

I can not reproduce it (since I do not have the source code to Array.hs).

The symbol is:

% echo '_Z8do_printIP15LLVMOpaqueValueN4llvm5ValueEEPcT_' |c++filt
char* do_print<LLVMOpaqueValue*, llvm::Value>(LLVMOpaqueValue*)
% 

Which is in:

llvm/cbits/extra.cpp

Which means is should be possible to fix that particular missing symbol.

I try something different (since I don't have your test case) and I get
other missing symbols:

GHCi, version 7.0.4: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Loading package filepath-1.2.0.0 ... linking ... done.
Loading package unix-2.4.2.0 ... linking ... done.
Loading package old-locale-1.0.0.2 ... linking ... done.
Loading package old-time-1.0.0.6 ... linking ... done.
Loading package directory-1.1.0.0 ... linking ... done.
Loading package process-1.0.1.5 ... linking ... done.
Loading package goa-3.1 ... linking ... done.
GOA> :m + LLVM.Core
GOA LLVM.Core> initializeNativeTarget
Loading package bytestring-0.9.1.10 ... linking ... done.
Loading package array-0.3.0.2 ... linking ... done.
Loading package containers-0.4.0.0 ... linking ... done.
Loading package transformers-0.2.2.0 ... linking ... done.
Loading package mtl-2.0.1.0 ... linking ... done.
Loading package syb-0.3 ... linking ... done.
Loading package pretty-1.0.1.2 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package type-level-0.2.4 ... linking ... done.
Loading package llvm-0.10.0.0 ... linking ... <interactive>: /usr/lib64/llvm-9999/ghc-7.0.4/HSllvm-0.10.0.0.o: unknown symbol `LLVMInitializeARMTargetInfo'
ghc: unable to load package `llvm-0.10.0.0'
GOA LLVM.Core> 

So I rebuild sys-devel/llvm with the alltargets use flag on gentoo.

Process haskell finished
GHCi, version 7.0.4: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Loading package filepath-1.2.0.0 ... linking ... done.
Loading package unix-2.4.2.0 ... linking ... done.
Loading package old-locale-1.0.0.2 ... linking ... done.
Loading package old-time-1.0.0.6 ... linking ... done.
Loading package directory-1.1.0.0 ... linking ... done.
Loading package process-1.0.1.5 ... linking ... done.
Loading package goa-3.1 ... linking ... done.
GOA> :m + LLVM.Core
GOA LLVM.Core> initializeNativeTarget
Loading package bytestring-0.9.1.10 ... linking ... done.
Loading package array-0.3.0.2 ... linking ... done.
Loading package containers-0.4.0.0 ... linking ... done.
Loading package transformers-0.2.2.0 ... linking ... done.
Loading package mtl-2.0.1.0 ... linking ... done.
Loading package syb-0.3 ... linking ... done.
Loading package pretty-1.0.1.2 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package type-level-0.2.4 ... linking ... done.
Loading package llvm-0.10.0.0 ... linking ... <interactive>: /usr/lib64/llvm-9999/ghc-7.0.4/HSllvm-0.10.0.0.o: unknown symbol `LLVMInitializePIC16TargetInfo'
ghc: unable to load package `llvm-0.10.0.0'
GOA LLVM.Core>

I commented the PIC16 stuff in the cabal file.

Process haskell finished
GHCi, version 7.0.4: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Loading package filepath-1.2.0.0 ... linking ... done.
Loading package unix-2.4.2.0 ... linking ... done.
Loading package old-locale-1.0.0.2 ... linking ... done.
Loading package old-time-1.0.0.6 ... linking ... done.
Loading package directory-1.1.0.0 ... linking ... done.
Loading package process-1.0.1.5 ... linking ... done.
Loading package goa-3.1 ... linking ... done.
GOA> :m + LLVM.Core
GOA LLVM.Core> initializeNativeTarget
Loading package bytestring-0.9.1.10 ... linking ... done.
Loading package array-0.3.0.2 ... linking ... done.
Loading package containers-0.4.0.0 ... linking ... done.
Loading package transformers-0.2.2.0 ... linking ... done.
Loading package mtl-2.0.1.0 ... linking ... done.
Loading package syb-0.3 ... linking ... done.
Loading package pretty-1.0.1.2 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package type-level-0.2.4 ... linking ... done.
Loading package llvm-0.10.0.0 ... linking ... <interactive>: /usr/lib64/llvm-9999/ghc-7.0.4/HSllvm-0.10.0.0.o: unknown symbol `_ZN4llvm12SMDiagnosticD1Ev'
ghc: unable to load package `llvm-0.10.0.0'
GOA LLVM.Core> 

I get stuck (trying to help) on this on, it is just a destructor
for a simple class that does not even declare a destructor:

% echo '_ZN4llvm12SMDiagnosticD1Ev'| c++filt     
llvm::SMDiagnostic::~SMDiagnostic()
%







More information about the Haskell-llvm mailing list