weimingtom / llvm-lua

Automatically exported from code.google.com/p/llvm-lua
Other
0 stars 0 forks source link

Make error : make: *** [ llvm-lua_binary ] Error 2 #18

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
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 saintcru...@gmail.com on 24 Jun 2013 at 2:27

GoogleCodeExporter commented 9 years ago
......
/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 saintcru...@gmail.com on 24 Jun 2013 at 2:28

GoogleCodeExporter commented 9 years ago
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 rjakabo...@gmail.com on 24 Jun 2013 at 6:15

GoogleCodeExporter commented 9 years ago
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 saintcru...@gmail.com on 27 Jun 2013 at 7:16

GoogleCodeExporter commented 9 years ago
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 saintcru...@gmail.com on 27 Jun 2013 at 7:28

GoogleCodeExporter commented 9 years ago
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 rjakabo...@gmail.com on 27 Jun 2013 at 7:30

GoogleCodeExporter commented 9 years ago
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 rjakabo...@gmail.com on 27 Jun 2013 at 9:08

GoogleCodeExporter commented 9 years ago
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 saintcru...@gmail.com on 1 Jul 2013 at 10:48

Attachments:

GoogleCodeExporter commented 9 years ago
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 saintcru...@gmail.com on 1 Jul 2013 at 11:01

GoogleCodeExporter commented 9 years ago
Fixed with cmake -DCURSES_LIBRARY=/usr/lib/libncurses.so 
-DCURSES_INCLUDE_PATH=/usr/include .

Original comment by saintcru...@gmail.com on 1 Jul 2013 at 11:02

GoogleCodeExporter commented 9 years ago
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 saintcru...@gmail.com on 3 Jul 2013 at 8:51

GoogleCodeExporter commented 9 years ago
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 saintcru...@gmail.com on 3 Jul 2013 at 9:54