[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: LLVM/JIT on MacOS X
From: |
Ben Abbott |
Subject: |
Re: LLVM/JIT on MacOS X |
Date: |
Wed, 11 Jun 2014 14:35:59 -0400 |
On Jun 11, 2014, at 12:11 PM, Stefan Mahr <address@hidden> wrote:
>>>>>
>>>>> 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
hmmm, it does appear there is more than one llvm present.
$ port installed *llvm*
The following ports are currently installed:
llvm-3.3 @3.3_1
llvm-3.3 @3.3_4 (active)
llvm-gcc42 @2336.11_1 (active)
llvm_select @0.2_0
llvm_select @1.0_0 (active)
I've deactivate llvm-gcc42
$ sudo port deactivate llvm-gcc42
Password:
---> Deactivating llvm-gcc42 @2336.11_1
---> Cleaning llvm-gcc42
And ran configure/make again. Unfortunately, I'm still seeing the same error.
Looking at "config.log", there is one problem with llvm ....
configure:15039: checking llvm/IR/Function.h presence
configure:15039: /opt/local/bin/g++-mp-4.7 -E -D__STDC_CONSTANT_MACROS
-D__STDC_LIMIT_MACROS -isystem /opt/local/libexec/llvm-3.3/include
-D_THREAD_SAFE -I/opt/local/include conftest.cpp
configure:15039: $? = 0
configure:15039: result: yes
configure:15039: checking for llvm/IR/Function.h
configure:15039: result: yes
configure:15057: checking llvm/Support/IRBuilder.h usability
configure:15057: /opt/local/bin/g++-mp-4.7 -c -pipe -O2 -m64 -D_THREAD_SAFE
-pthread -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -isystem
/opt/local/libexec/llvm-3.3/include -D_THREAD_SAFE -I/opt/local/include
conftest.cpp >&5
conftest.cpp:84:36: fatal error: llvm/Support/IRBuilder.h: No such file or
directory
Ben
- 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, 2014/06/11
- Re: LLVM/JIT on MacOS X,
Ben Abbott <=
- 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
- Re: LLVM/JIT on MacOS X, Stefan Mahr, 2014/06/14