s2e
s2e copied to clipboard
Use prebuilt packages for LLVM and Z3
Hi,
This PR will allow the (optional) use of pre-built LLVM and Z3 packages instead of building these tools from source. It should greatly speed up build/ci times.
LLVM is expected to be pre-installed by the user as a system package (the Dockerfile was modified to fetch LLVM-13 from LLVM's apt repo).
The specific version of Z3 used is fetched as a binary release from the Z3 github page.
Should fix s2e-env/#454
Nice job! I'll test it asap. A couple formal remarks:
- Prefix commit messages with the module that the commit touches. Have a look at the commit history to see how it looks like.
- If you find yourself fixing something that was previously introduced in the PR, squash that fix.
- Logically separate changes should go into separate commits. E.g., don't mix z3 changes with LLVM. You could even move Z3 to a separate PR to have it merged quicker, since it's a lot simpler.
All this makes reviewer's job much easier.
Double-check that the docker demo image still works: http://s2e.systems/docs/BuildingS2E.html
Splitting out Binary z3 support into into a separate PR: https://github.com/S2E/s2e/pull/50
Just tested this PR, it builds great. The demo I linked above doesn't start though, QEMU crashes with this eror:
/home/vitaly/s2e/env/build/s2e-demo/install/bin/qemu-system-i386: error while loading shared libraries: libLTO.so.13: cannot open shared object file: No such file or directory
Hmm, likely an LD_LIBRARY_PATH issue; will look into it.
The binary LLVM-13 commit split into https://github.com/S2E/s2e/pull/53 and to get the demo to run, https://github.com/S2E/scripts/pull/5
Closing stale PR.