Discussion:
Building klee with LLVM/CLANG 2.9 on windows
Alexandre Gouraud
2011-11-08 09:16:54 UTC
Permalink
Hello,

I am trying to build KLEE with LLVM/CLANG 2.9. I know it is warned on the
website that it might not work (and that I should use 2.8 instead), but I
have also seen several people doing so on the mailing list so I thought I
could give it a try.

I am stuck here:

make[3]: *** No rule to make target
`/c/test/llvm/Release+Asserts/bin/opt.exe', needed by
`/c/test/klee/runtime/Intrinsic/Release+Asserts/klee_div_zero_check.bc'.
Stop.

opt is in the directory /c/test/llvm/Release/bin already, as well as in my
path in /mingw64/x86_64-w64-mingw32/bin so I don't understand several
things:

1°/ What is that 'Release+Asserts' directory which does not exist while
other compilation steps refer to it without any problem ?
2°/ Assuming 'Release+Asserts' == 'Release', why does the Makefile needs to
build target while the file does exists already ?
3°/ If I brute force this in creating manually
'Release+Asserts/bin/opt.exe', I get the following error (which I don't
want to deal with since I know in advance this is not the way to fix the
problem):

llvm[3]: Compiling klee_div_zero_check.ll to klee_div_zero_check.bc for
Release+Asserts build (bytecode) c:\test\llvm\Release+Asserts\bin\opt.exe:
c:/test/klee/runtime/Intrinsic/Release+Asserts/klee_div_zero_check.ll:1:2:
error: expected top-level entity
.def klee_div_zero_check;
^

llvm-gcc is well configured and points to clang.exe, and I have checked
configure does find it. Any hint would be welcome, otherwise I would have
to downgrade to 2.8.

Thanks in advance,
--
Heyiji
Alexandre Gouraud
2011-11-17 19:50:02 UTC
Permalink
Hi,

I am answering myself to my questions since I made some progress:

- I did not use the latest version of KLEE, so I updated it to rev 143693.
- I put TOOL_VERBOSE=1 in the makefile to understand what is going on, and
could debug the makefile this way.

Then I got another error somewhere else:

llvm[3]: Compiling klee_int.c for Release+Asserts build (bytecode)
c:/test/klee/runtime/Intrinsic/klee_int.c:10:10: fatal error: 'assert.h'
file not found
#include <assert.h>
^
1 error generated.

which I could debug with TOOL_VERBOSE=1 and found out that my clang setup
was incorrect (couldn't find the headers properly).

Best regards,

A.G.
Post by Alexandre Gouraud
Hello,
I am trying to build KLEE with LLVM/CLANG 2.9. I know it is warned on the
website that it might not work (and that I should use 2.8 instead), but I
have also seen several people doing so on the mailing list so I thought I
could give it a try.
make[3]: *** No rule to make target
`/c/test/llvm/Release+Asserts/bin/opt.exe', needed by
`/c/test/klee/runtime/Intrinsic/Release+Asserts/klee_div_zero_check.bc'.
Stop.
opt is in the directory /c/test/llvm/Release/bin already, as well as in my
path in /mingw64/x86_64-w64-mingw32/bin so I don't understand several
1°/ What is that 'Release+Asserts' directory which does not exist while
other compilation steps refer to it without any problem ?
2°/ Assuming 'Release+Asserts' == 'Release', why does the Makefile needs
to build target while the file does exists already ?
3°/ If I brute force this in creating manually
'Release+Asserts/bin/opt.exe', I get the following error (which I don't
want to deal with since I know in advance this is not the way to fix the
llvm[3]: Compiling klee_div_zero_check.ll to klee_div_zero_check.bc for
error: expected top-level entity
.def klee_div_zero_check;
^
llvm-gcc is well configured and points to clang.exe, and I have checked
configure does find it. Any hint would be welcome, otherwise I would have
to downgrade to 2.8.
Thanks in advance,
--
Heyiji
--
Alexandre
Loading...