Nann
Nann

Reputation: 1

Configure Error on KLEE Docker: C compiler cannot create executables

I'm trying to build Coreutils with LLVM, using klee docker based on step 3 on https://klee.github.io/tutorials/testing-coreutils/.

But I found a problem on running:

CC=wllvm ../configure --disable-nls CFLAGS="-g -O1 -Xclang -disable-llvm-passes -D__NO_STRING_INLINES  -D_FORTIFY_SOURCE=0 -U__OPTIMIZE__"

it says

checking for gcc... wllvm 
checking whether the C compiler works... no
configure: error: in `/home/klee/coreutils-8.0/obj2':
configure: error: C compiler cannot create executables
See `config.log' for more details.

before running the code above I have install wllvm before through

pip install --upgrade wllvm

and already installed

Requirement already up-to-date: wllvm in /home/klee/.local/lib/python2.7/site-packages

But although I already installed it, it still produces error, and I don't know how to handle it, I have use the solution provided in C compiler cannot create executables during build of Coreutils with LLVM, but nothing different,

after that I follow instruction in https://github.com/travitch/whole-program-llvm/issues/68, said to use clang rather than wllvm. The program was running after that, but error again on execute

find . -executable -type f | xargs -I '{}' extract-bc '{}'

that say

xargs: extract-bc: No such file or directory

After searching any source, I still can't solve it.

this is part of the config.log when wllvm not found

../configure: line 4240: wllvm: command not found
configure:4249: $? = 127
configure:4269: checking whether the C compiler works
configure:4291: wllvm -g -O1 -Xclang -disable-llvm-passes -D__NO_STRING_INLINES  -D_FORTIFY_SOURCE=0 -U__OPTIMIZE__   conftest.c  >&5
../configure: line 4293: wllvm: command not found
configure:4295: $? = 127
configure:4333: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU coreutils"
| #define PACKAGE_TARNAME "coreutils"
| #define PACKAGE_VERSION "8.0"
| #define PACKAGE_STRING "GNU coreutils 8.0"
| #define PACKAGE_BUGREPORT "[email protected]"
| #define PACKAGE_URL "http://www.gnu.org/software/coreutils/"
| #define PACKAGE "coreutils"
| #define VERSION "8.0"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:4338: error: in `/home/klee/coreutils-8.0/obj-llvm':
configure:4342: error: C compiler cannot create executables
See `config.log' for more details.

Upvotes: 0

Views: 486

Answers (1)

Dune
Dune

Reputation: 85

It seems that wllvm is simply not in your $PATH. You can check that with which; for example for me it is:

$ which wllvm
/home/#####/.local/bin/wllvm

Related: How to add a directory to the PATH?

Upvotes: 0

Related Questions