Open Lukas-Dresel opened 1 year ago
Unfortunately, it seems to be incompatible with the lowest version I could select in apt
(which is libstdc++-7-dev).
It errors with a variety of errors, e.g.
or 1st argument
#12 11.42 operator<<(double __f)
#12 11.42 ^
#12 11.42 /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream:224:7: note: candidate function not viable: cannot convert argument of incomplete type 'void' to 'float' fo
r 1st argument
#12 11.42 operator<<(float __f)
#12 11.42 ^
#12 11.42 /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream:232:7: note: candidate function not viable: cannot convert argument of incomplete type 'void' to 'long doub
le' for 1st argument
#12 11.42 operator<<(long double __f)
#12 11.42 ^
#12 11.42 /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream:245:7: note: candidate function not viable: cannot convert argument of incomplete type 'void' to 'const voi
d *' for 1st argument
#12 11.42 operator<<(const void* __p)
#12 11.42 ^
#12 11.42 /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream:276:7: note: candidate function not viable: cannot convert argument of incomplete type 'void' to 'std::basi
c_ostream<char>::__streambuf_type *' (aka 'basic_streambuf<char, std::char_traits<char>> *') for 1st argument
#12 11.42 operator<<(__streambuf_type* __sb);
#12 11.42 ^
#12 11.42 In file included from /symcc/build/SymRuntime-prefix/src/SymRuntime-build/qsym_backend/expr_builder__gen.cpp:1:
#12 11.42 In file included from /symcc/runtime/qsym_backend/qsym/qsym/pintool/expr_builder.h:6:
#12 11.42 In file included from /symcc/runtime/qsym_backend/qsym/qsym/pintool/expr_cache.h:4:
#12 11.42 /symcc/runtime/qsym_backend/qsym/qsym/pintool/expr.h:388:55: error: too few arguments to function call, expected at least 3, have 2
#12 11.42 return context_.bv_val(value_.toString(10, false).c_str(), bits_);
#12 11.42 ~~~~~~~~~~~~~~~ ^
#12 11.42 /usr/local/include/llvm/ADT/APInt.h:1597:8: note: 'toString' declared here
#12 11.42 void toString(SmallVectorImpl<char> &Str, unsigned Radix, bool Signed,
#12 11.42 ^
#12 11.42 In file included from /symcc/build/SymRuntime-prefix/src/SymRuntime-build/qsym_backend/expr_builder__gen.cpp:1:
#12 11.42 In file included from /symcc/runtime/qsym_backend/qsym/qsym/pintool/expr_builder.h:6:
#12 11.42 In file included from /symcc/runtime/qsym_backend/qsym/qsym/pintool/expr_cache.h:4:
#12 11.42 /symcc/runtime/qsym_backend/qsym/qsym/pintool/expr.h:388:56: error: member reference base type 'void' is not a structure or union
#12 11.42 return context_.bv_val(value_.toString(10, false).c_str(), bits_);
#12 11.42 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
#12 11.42 7 errors generated.
#12 11.42 ninja: build stopped: subcommand failed.
#12 11.42 ninja: build stopped: subcommand failed.
------
As I'm pushing for a conference deadline at the moment, I unfortunately don't have time to look into this issue further.
I realized that symcc_aflplusplus
also relies on, and manages to install, libstdc++-5-dev
. I've retried it with their line of
RUN echo "deb http://archive.ubuntu.com/ubuntu bionic main universe" >> /etc/apt/sources.list
Unfortunately the above compilation errors persist.
I don't think we tried to update every fuzzer when we upgraded. @Alan32Liu what do you think? Should we delete this?
I don't think we tried to update every fuzzer when we upgraded. @Alan32Liu what do you think? Should we delete this?
Yep, I failed to update symcc_afl++
due to outdated and changing dependencies (they only supported clang-10 and were trying to support LLVM-15
back then).
@Lukas-Dresel Does this block your experiment in #1827?
@jonathanmetzman @Alan32Liu It does not block me, simply because I decided to not evaluate against SymQEMU because of it. However, instead of removing it, I'd be willing to update it to build again after the deadline, because I've already done so for my own project. However, mine also has a few other modifications, so it can't just be dropped in as a replacement.
Since SymCC
, SymQEMU
and SymSan
are the only concolic fuzzers in the benchmark, I'd prefer to see them stay as they are important for concolic execution research to be able to evaluate against
Since
SymCC
,SymQEMU
andSymSan
are the only concolic fuzzers in the benchmark, I'd prefer to see them stay as they are important for concolic execution research to be able to evaluate against
Yep, I do want to keep it (and KLEE) as baselines for concolic fuzzers if possible, and did spend some effort trying to make them compatible. I gave up due to the time budget back then.
It would be great if we could work together to revive them when the time is more convenient for you.
Hi, I have a similar issue(in symcc_afl) and am unable to fix it. Is there any issue with the dependencies? Can I fix it by changing the clang version?
Hi, I have a similar issue(in symcc_afl) and am unable to fix it. Is there any issue with the dependencies? Can I fix it by changing the clang version?
I do not have the answer to that, because it has been a long time. But if you are trying to run fuzzing experiments, please feel free to submit a PR with the change you desire and request an experiment to figure out : )
As the title says,
symqemu_aflplusplus
seems to not have been updated with the switch to Ubuntu 20.04 and fails to build with the following errorI'm debugging locally at the moment to find which version is appropriate.