Make error : make: *** [ llvm-lua_binary ] Error 2
What steps will reproduce the problem?
1. cmake ..
2. make
3. error
What is the expected output? What do you see instead?
LLVM compiles
What version of the product are you using? On what operating system?
LLVM_lua-1.3.1 or LLVM-GIT : Debian Wheezy O.S.
Please provide any additional information below.
I see that all binaries, using cmake-gui, point to LLVM-3.1 version while the
-L flag states a path to /usr/lib/llvm-3.0/include/llvm/...
I could not find how to correct this just yet
Original issue reported on code.google.com by [email protected] on 24 Jun 2013 at 2:27
......
/usr/lib/llvm-3.0/include/llvm/Support/IRBuilder.h:1146:13: note:
llvm::CallInst* llvm::IRBuilder<preserveNames, T,
Inserter>::CreateCall(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const
llvm::Twine&) [with bool preserveNames = true; T = llvm::ConstantFolder;
Inserter = llvm::IRBuilderDefaultInserter<true>]
/usr/lib/llvm-3.0/include/llvm/Support/IRBuilder.h:1146:13: note: no known
conversion for argument 2 from ‘std::vector<llvm::Value*,
std::allocator<llvm::Value*> >::iterator {aka
__gnu_cxx::__normal_iterator<llvm::Value**, std::vector<llvm::Value*,
std::allocator<llvm::Value*> > >}’ to ‘llvm::ArrayRef<llvm::Value*>’
make[3]: *** [build/CMakeFiles/llvm-lua_dynamic.dir/LLVMCompiler.o] Error 1
make[2]: *** [build/CMakeFiles/llvm-lua_dynamic.dir/all] Error 2
make[1]: *** [build/CMakeFiles/llvm-lua_binary.dir/rule] Error 2
make: *** [llvm-lua_binary] Error 2
Original comment by [email protected] on 24 Jun 2013 at 2:28
llvm-lua-1.3.1 only supports LLVM 2.8
You need to use the latest git version of llvm-lua with LLVM 3.1
No version of llvm-lua will compile with LLVM 3.0.
You will have to install LLVM 3.1 then tell cmake where it is installed.
If you already have 3.1 install then please attach the CMakeCache.txt file and
provide the output from the llvm-config command (of LLVM 3.1):
<path to LLVM 3.1>/bin/llvm-config --ldflags --cppflags
Original comment by [email protected] on 24 Jun 2013 at 6:15
Thanks for the informative reply. I'm pretty novice to all this. I have both
llvm 3.0 and 3.1 installed as well as the git version for llvm-lua. I assume
i've not understood correctly how to tell cmake to use the correct llvm-config
command.
llvm-config-3.1 --ldflags --cppflags
-L/usr/lib/llvm-3.1/lib -lpthread -lffi -ldl -lm
-I/usr/lib/llvm-3.1/include -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
llvm-config --ldflags --cppflags
-L/usr/lib/llvm-3.0/lib -lpthread -lffi -ldl -lm
-I/usr/lib/llvm-3.0/include -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
Original comment by [email protected] on 27 Jun 2013 at 7:16
There's a symlink in /usr/bin to /usr/lib/llvm-3.1/bin/llvm-config.
When using cmake-gui the LLVM_CONFIG_EXECUTABLE field is changed to
/usr/lib/llvm-3.1/bin/llvm-config and/or the same is done for LLVM_LD =
/usr/lib/llvm-3.1/bin/llvm-ld This keeps pointing to llvm-3.0 libs etc. Even
after deleting the cache.
If i change the llvm-config path in CMakeCache.txt it works and builds with
many warning but 100% without errors.
Original comment by [email protected] on 27 Jun 2013 at 7:28
ok you will need to set the LLVM_CONFIG_EXECUTABLE cmake variable to point to
llvm-config-3.1
either in the cmake-gui (ccmake for the console gui) or with
cmake -D LLVM_CONFIG_EXECUTABLE:String=/usr/bin/llvm-config-3.1 ..
make
re-open if that doesn't work
Original comment by [email protected] on 27 Jun 2013 at 7:30
- Changed state: Done
ah, sorry I didn't fully read your last update. I had marked the issue as
done. Thinking that the variable only had to be set. Can you attach the bad
CMakeCache.txt file (the generated one when you set the variable from the gui).
I will take a closer look in the morning.
Original comment by [email protected] on 27 Jun 2013 at 9:08
- Changed state: Accepted
Since i've backed-away from using the repo download for the sources and used
the archive under downloads. Attached is the CMakeCache.txt file.
Setting the values with ccmake DOES work, i'll back away from the gui as well.
cmake works fine yet make fails starting with below errors
/tools/llvm_lua-1.3.1/llvm-lua/LLVMCompiler.cpp:256:56: error: invalid
conversion from ���const llvm::Type*��� to
���llvm::Type*��� [-fpermissive]
In file included from /data/tools/llvm_lua-1.3.1/llvm-lua/LLVMCompiler.cpp:26:0:
ending with
/usr/lib/llvm-3.1/include/llvm/Support/IRBuilder.h:1179:13: note:
llvm::CallInst* llvm::IRBuilder<preserveNames, T,
Inserter>::CreateCall(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const
llvm::Twine&) [with bool preserveNames = true; T = llvm::ConstantFolder;
Inserter = llvm::IRBuilderDefaultInserter<true>]
/usr/lib/llvm-3.1/include/llvm/Support/IRBuilder.h:1179:13: note: no known
conversion for argument 2 from ���std::vector<llvm::Value*,
std::allocator<llvm::Value*> >::iterator {aka
__gnu_cxx::__normal_iterator<llvm::Value**, std::vector<llvm::Value*,
std::allocator<llvm::Value*> > >}��� to
���llvm::ArrayRef<llvm::Value*>���
make[2]: *** [build/CMakeFiles/llvm-lua_dynamic.dir/LLVMCompiler.o] Error 1
make[1]: *** [build/CMakeFiles/llvm-lua_dynamic.dir/all] Error 2
make: *** [all] Error 2
Original comment by [email protected] on 1 Jul 2013 at 10:48
Attachments:
I've disabled curses for the sake of compilation, this does not seem to catch
on even with all paths set correctly.
Original comment by [email protected] on 1 Jul 2013 at 11:01
Fixed with cmake -DCURSES_LIBRARY=/usr/lib/libncurses.so
-DCURSES_INCLUDE_PATH=/usr/include .
Original comment by [email protected] on 1 Jul 2013 at 11:02
At this time i have seen a file which indicates lua-compiler is about to be
built but the build still fails, i hope i'm not asking too many n00b questions
here. Feel free to point me to a guide or checklist.
Original comment by [email protected] on 3 Jul 2013 at 8:51
Sorry for this mess, it is compiling as expected. What i've done is removed all
sources. Pulled a new git clone, made the build-directory, ccmake .., configured
LLVM_CC /usr/bin/clang
LLVM_CONFIG_EXECUTABLE /usr/bin/llvm-config-3.1
LLVM_LD /usr/bin/llvm-ld-3.1
then ran make. I'm kind of baffled at this since that is what i did before but
each time i entered something wrong initially. This seems to echoe thru the
process ?
Anyway, thank you for the time you spent on this n00bness.
Original comment by [email protected] on 3 Jul 2013 at 9:54