ESBMC-GPU is a context-bounded model checker based on the satisfiability modulo theories (SMT) to check data race, deadlock, pointer safety, array bounds, arithmetic overflow, division by zero, and user-specified assertions in programs written in Compute Unified Device Architecture (CUDA).
This document has the installation and execution process of ESBMC-GPU with support to Ubuntu OS 16.04.
sudo apt-get install build-essential libtool
sudo apt-get install automake
sudo apt-get install byacc flex
sudo apt-get install libboost-all-dev
sudo apt-get install libgmp3-dev
sudo apt-get install libssl-dev
sudo apt-get install clang-3.8
sudo apt-get install clang-3.8-dev
sudo apt-get install lldb-3.8
sudo apt-get install bison
sudo apt-get install gcc-multilib g++-multilib
sudo apt-get install libc6 libc6-dev
sudo apt-get install openssl
2. Download the solvers from http://esbmc.org/gpu/wp-content/uploads/2016/10/solvers_esbmc-gpu.zip
mv boolector ~/
mv z3 ~/
mv lingeling ~/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/boolector/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/z3/lib/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/lingeling/
source ~/.bashrc
sh scripts/autoboot.sh
./configure --with-z3=$HOME/z3 --with-boolector=$HOME/z3 --disable-werror
make