[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Aw: Re: LLVM/JIT on MacOS X
From: |
Stefan Mahr |
Subject: |
Aw: Re: LLVM/JIT on MacOS X |
Date: |
Wed, 11 Jun 2014 18:11:00 +0200 |
> >>>
> >>> Ben Abbott wrote:
> >>>>
> >>>> Carlo,
> >>>>
> >>>> Have you been successful getting JIT to work on Mac OS X? When I try, I
> >>>> encounter the error below.
> >>>>
> >>>> Ben
> >>>>
> >>>> [...]
> >>>>
> >>>> Undefined symbols for architecture x86_64:
> >>>> "llvm::verifyModule(llvm::Module const&, llvm::VerifierFailureAction,
> >>>> std::basic_string<char, std::char_traits<char>, std::allocator<char>
> >>>> >*)", referenced from:
> >>>> tree_jit::optimize(llvm::Function*) in
> >>>> libcorefcn.a(corefcn_libcorefcn_la-pt-jit.o)
> >>>> "llvm::raw_fd_ostream::raw_fd_ostream(char const*,
> >>>> std::basic_string<char, std::char_traits<char>, std::allocator<char> >&,
> >>>> unsigned int)", referenced from:
> >>>> tree_jit::optimize(llvm::Function*) in
> >>>> libcorefcn.a(corefcn_libcorefcn_la-pt-jit.o)
> >>>> "llvm::ExecutionEngine::createJIT(llvm::Module*, std::basic_string<char,
> >>>> std::char_traits<char>, std::allocator<char> >*,
> >>>> llvm::JITMemoryManager*, llvm::CodeGenOpt::Level, bool,
> >>>> llvm::Reloc::Model, llvm::CodeModel::Model)", referenced from:
> >>>> tree_jit::initialize() in
> >>>> libcorefcn.a(corefcn_libcorefcn_la-pt-jit.o)
> >>>> ld: symbol(s) not found for architecture x86_64
> >>>>
> >>>
> >>> Hi Ben,
> >>>
> >>> your error message sounds like a incompatibility with newer LLVM versions
> >>> and should be fixed with my attached patch in this bug report:
> >>> http://savannah.gnu.org/bugs/?41061
> >>>
> >>> As always, a rebased changeset to a more recent repository state can be
> >>> found here: http://inversethought.com/hg/octave-nkf/nkf-ready
> >>>
> >>> Could you try the patch?
> >>>
> >>> Stefan
> >>
> >> Patching my default branch with the changeset from bug 41061 ...
> >>
> >> $ patch -p1 < ~/Downloads/llvm-3.4-3.5pre.patch
> >> patching file configure.ac
> >> patching file libinterp/corefcn/jit-typeinfo.cc
> >> patching file libinterp/corefcn/jit-util.h
> >> patching file libinterp/corefcn/pt-jit.cc
> >> Hunk #2 succeeded at 2064 (offset -8 lines).
> >> Hunk #3 succeeded at 2187 (offset -8 lines).
> >> patching file libinterp/corefcn/pt-jit.h
> >> patching file m4/acinclude.m4
> >> $ make -j4
> >> <snip>
> >> </snip>
> >> Undefined symbols for architecture x86_64:
> >> "llvm::verifyModule(llvm::Module const&, llvm::VerifierFailureAction,
> >> std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)",
> >> referenced from:
> >> tree_jit::optimize(llvm::Function*) in
> >> libcorefcn.a(corefcn_libcorefcn_la-pt-jit.o)
> >> "llvm::raw_fd_ostream::raw_fd_ostream(char const*,
> >> std::basic_string<char, std::char_traits<char>, std::allocator<char> >&,
> >> unsigned int)", referenced from:
> >> tree_jit::optimize(llvm::Function*) in
> >> libcorefcn.a(corefcn_libcorefcn_la-pt-jit.o)
> >> "llvm::ExecutionEngine::createJIT(llvm::Module*, std::basic_string<char,
> >> std::char_traits<char>, std::allocator<char> >*, llvm::JITMemoryManager*,
> >> llvm::CodeGenOpt::Level, bool, llvm::Reloc::Model,
> >> llvm::CodeModel::Model)", referenced from:
> >> tree_jit::initialize() in
> >> libcorefcn.a(corefcn_libcorefcn_la-pt-jit.o)
> >> ld: symbol(s) not found for architecture x86_64
> >>
> >> Ben
> >
> > bootstrap and configure is needed before starting make.
>
> Configure ran (automatically) after the patch was applied. Just to be sure,
> I ran bootstrap & configure manually, and still obtained the same result.
>
> Ben
>
I'm really confused that compiling works, but linking fails. This usually
happens in the past (for me) if there are multiple versions of LLVM installed
(Debian/Ubuntu) or some older headerfiles were not deleted during update (seen
with MXE).
E.g. for linking error with llvm::verifyModule. The header file for my LLVM-3.3
installation is in <llvm/Analysis/Verifier.h>. For llvm 3.5 it's in
<llvm/IR/Verifier.h> with different declaration. If compiling with 3.3 headers
and linking to 3.5 lib I would expect the same error as you get. Same for
llvm::raw_fd_ostream::raw_fd_ostream, since the last argument is not an integer
type anymore in newer LLVM versions. However, this doesn't explain a link error
for llvm::ExecutionEngine::createJIT. I see no difference in declarions between
LLVM versions 3.3 to 3.5.
To summarise: If you only have LLVM 3.3 installed, I have no idea. Sorry.
Stefan
- LLVM/JIT on MacOS X, Ben Abbott, 2014/06/10
- Aw: LLVM/JIT on MacOS X, Stefan Mahr, 2014/06/11
- Re: LLVM/JIT on MacOS X, Ben Abbott, 2014/06/11
- Aw: Re: LLVM/JIT on MacOS X, Stefan Mahr, 2014/06/11
- Re: LLVM/JIT on MacOS X, Ben Abbott, 2014/06/11
- Aw: Re: LLVM/JIT on MacOS X,
Stefan Mahr <=
- Re: LLVM/JIT on MacOS X, Ben Abbott, 2014/06/11
- Re: LLVM/JIT on MacOS X, Stefan Mahr, 2014/06/11
- Re: LLVM/JIT on MacOS X, Sebastian Schöps, 2014/06/11
- Re: LLVM/JIT on MacOS X, Ben Abbott, 2014/06/12
- Aw: Re: LLVM/JIT on MacOS X, Stefan Mahr, 2014/06/12
- Re: LLVM/JIT on MacOS X, Ben Abbott, 2014/06/12
- Aw: Re: LLVM/JIT on MacOS X, Stefan Mahr, 2014/06/12
- Re: LLVM/JIT on MacOS X, Ben Abbott, 2014/06/12
- Re: LLVM/JIT on MacOS X, Ben Abbott, 2014/06/14
- Re: LLVM/JIT on MacOS X, Ben Abbott, 2014/06/14