eurecom-s3 / symcc

SymCC: efficient compiler-based symbolic execution
http://www.s3.eurecom.fr/tools/symbolic_execution/symcc.html
GNU General Public License v3.0
773 stars 135 forks source link

Support for LLVM 11 #24

Closed straightblast closed 3 years ago

straightblast commented 3 years ago

When i tried to run 'ninja check', i get the following error:

/opt/symcc/build# ninja check [5/14] Performing configure step for 'SymRuntime' -- The C compiler identification is GNU 10.0.1 -- The CXX compiler identification is GNU 10.0.1 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /opt/symcc/build/SymRuntime-prefix/src/SymRuntime-build [8/14] Building CXX object CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o FAILED: CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o /usr/bin/c++ -DSymbolize_EXPORTS -isystem /usr/lib/llvm-11/include -std=c++17 -Wredundant-decls -Wcast-align -Wmissing-include-dirs -Wswitch-default -Wextra -Wall -Winvalid-pch -Wredundant-decls -Wformat=2 -Wmissing-format-attribute -Wformat-nonliteral -Werror -fPIC -D_GNU_SOURCE -DSTDC_CONSTANT_MACROS -DSTDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o -MF CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o.d -o CMakeFiles/Symbolize.dir/compiler/Symbolizer.cpp.o -c ../compiler/Symbolizer.cpp ../compiler/Symbolizer.cpp: In member function 'void Symbolizer::symbolizeFunctionArguments(llvm::Function&)': ../compiler/Symbolizer.cpp:38:77: error: no matching function for call to 'llvm::IRBuilder<>::CreateCall(llvm::Value const&, llvm::ConstantInt)' 38 IRB.getInt8(arg.getArgNo()));

I have libllvm11, llvm-11-tools and llvm-11-dev installed, but it doesn't address the compilation issue. Any suggestions please?

sebastianpoeplau commented 3 years ago

I haven't tested LLVM 11 yet - probably a few adjustments are needed to get SymCC to compile. Versions 8, 9 and 10 are known to work though. Do you have the option to build against one of those?

straightblast commented 3 years ago

I do, but I want to use the more recent support of AFLplusplus that requires llvm 11. I guess I can still work around it by setting it up as multi-system parallelism instead of single system.

Thanks.

sebastianpoeplau commented 3 years ago

I guess LLVM 11.0.0 should be released soon. Once the final version is out, I'll make sure that SymCC builds against it.