eurecom-s3/symqemu

Compilation fails

vanhauser-thc opened this issue · 2 comments

I follow the README but compilation fails:

$ cd /
$ git clone --depth=1 https://github.com/eurecom-s3/symcc
$ cd symcc
$ git submodule update --init && mkdir build && cd build
$  cmake -G Ninja -DQSYM_BACKEND=ON -DZ3_TRUST_SYSTEM_VERSION=on ..
$  ninja
$ cargo install --path util/symcc_fuzzing_helper
[this all succeeds]

$ git clone --depth=1 https://github.com/eurecom-s3/symqemu
$ cd symqemu
$ ./configure --audio-drv-list= --disable-bluez --disable-sdl --disable-gtk --disable-vte --disable-opengl --disable-virglrenderer --target-list=x86_64-linux-user --disable-werror --enable-capstone=git --symcc-source=/symcc/ --symcc-build=/symcc/build
[...]
$ make
[...]
  CC      x86_64-linux-user/trace/control-target.o
  CC      x86_64-linux-user/gdbstub-xml.o
  CC      x86_64-linux-user/trace/generated-helpers.o
  LINK    x86_64-linux-user/symqemu-x86_64
/usr/bin/ld: accel/tcg/tcg-runtime-sym.o: in function `sym_setcond_internal':
/symcc/symqemu/accel/tcg/tcg-runtime-sym.c:618: undefined reference to `_sym_build_bool_to_bits'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:209: symqemu-x86_64] Error 1
make: *** [Makefile:472: x86_64-linux-user/all] Error 2

Ah, good point! Someone spotted a bug in the SymCC runtime a few days ago that caused us to change the semantics of _sym_build_bool_to_bits - we'll have to update SymQEMU's use of the runtime accordingly (and possibly set up a CI pipeline that triggers on runtime changes 🤔).

As a workaround, you can use eurecom-s3/symcc@abd6c3b or older (i.e., before we renamed the function in the runtime).