Age | Commit message (Collapse) | Author |
|
As a follow-up to recent build script enhancements
(https://github.com/klee/klee/commit/818275b7249250780ddd5ed021cae64288514270),
finally build KLEE inside of the Docker image as artefact owned by the
`klee` user, including user-installed Python3 modules.
This fixes issues with non-writable build directories.
In addition `$HOME/.local/bin` directory is made available in search path.
|
|
Install tabulate package for klee-stats to work when used within KLEE Docker.
|
|
Instead of using a branch that doesn't allow build artifact caching, use
the newer released version instead.
|
|
|
|
|
|
|
|
ENABLE_DOXYGEN=ON
|
|
|
|
|
|
CMake Warning at docs/CMakeLists.txt:46 (message):
Doxygen not found. Can't build Doxygen documentation
|
|
|
|
Co-authored with @MartinNowack
|
|
|
|
|
|
|
|
|
|
Allow to build klee runtime with different build parameters using the build script.
|
|
|
|
Now commands like `docker run klee/klee klee --version` are possible.
|
|
Fixes #1080. The proper LD_LIBRARY_PATH is required when binaries linked
with kleeRuntest are run.
The STP line is changed to extend the library path instead of replace
it, I am not sure if it can be removed at this moment.
|
|
|
|
|
|
|
|
Building/managing dependencies of KLEE are not easy. This script should change
this.
Features:
* script install different versions in their specific directories
This allows:
- to have different versions in parallel installed: llvm, solvers
- to have different optimization levels installed (Debug, no-debug,
assertions, optimized)
- to have different versions of instrumentation enabled (address, memory,
leakage, undefined behavior)
* the script is kept distribution agnostic: assuming basic packages are
installed (a compiler), use `scripts/build/ubuntu-dependencies.sh` to install
ubuntu specific ones
* the script does not install any file into system directories (sudo is not
required) files are only installed into a user specified BASE directory
The same scripts are used for either local setup (`scripts/build/local_install.sh`)
or create a docker image based of your current source folder (`scripts/build/build_docker.sh`)
Change the defaults permanently by modifying (`scripts/build/common-defaults.sh`)
or change them on the fly by providing them as environment variables on the
command line.
The same scripts are also used for TravisCI, so we test what we are using.
|
|
|
|
configuration, TravisCI scripts and Dockerfile build appropriately.
There are a bunch of clean ups this enables but this commit doesn't
attempt them. We can do that in future commits.
|
|
The recent landing of macOS support in TravisCI
(3a8bc6a43073b98b58c8cf0c20a930cb2c953b5d) broke the Docker build due to
the `TRAVIS_OS_NAME` environment variable not being set by the Docker
build. Do the simplest fix for now which is to define the variable. This
isn't the cleanest fix but it will do for now.
|
|
builds
of KLEE.
Two configurations (one for each build system) have been added to
TravisCI to do an ASan build.
|
|
|
|
This is based off intial work by @jirislaby in #481. However it
has been substantially modified.
Notably it includes a separate build sytem to build the runtimes which
is inspired by the old build system. The reason for doing this is
because CMake is not well suited for building the runtime:
* CMake is configured to use the host compiler, not the bitcode
compiler. These are not the same thing.
* Building the runtime using `add_custom_command()` is flawed
because we can't automatically get transitive depencies (i.e.
header file dependencies) unless the CMake generator is makefiles.
(See `IMPLICIT_DEPENDS` of `add_custom_command()` in CMake).
So for now we have a very simple build system for building the runtimes.
In the future we can replace this with something more sophisticated if
we need it.
Support for all features of the old build system are implemented apart
from recording the git revision and showing it in the output of
`klee --help`.
Another notable change is the CMake build system works much better with
LLVM installs which don't ship with testing tools. The build system
will download the sources for `FileCheck` and `not` tools if the
corresponding binaries aren't available and will build them. However
`lit` (availabe via `pip install lit`) and GTest must already be
installed.
Apart from better support for testing a significant advantage of the
new CMake build system compared to the existing "Autoconf/Makefile"
build system is that it is **not** coupled to LLVM's build system
(unlike the existing build system). This means that LLVM's
autoconf/Makefiles don't need to be installed somewhere on the system.
Currently all tests pass.
Support has been implemented in TravisCI and the Dockerfile for
building with CMake.
The existing "Autoconf/Makefile" build system has been left intact
and so both build systems can coexist for a short while. We should
remove the old build system as soon as possible though because it
creates an unnecessary maintance burden.
|
|
|
|
Signed-off-by: Domenico Fabio Marino <dfm114@ic.ac.uk>
|
|
|
|
cece05cadf6a624afd188e81720ae7701736a703
|
|
"klee_uclibc_v1.0.0" release of uclibc.
|
|
|
|
Say farewell to r940.
|
|
set when COVERAGE is, added the python server script to scripts
|
|
(I'm not sure where python3 came from. I didn't explicitly install it).
Just ship python3.
|
|
/usr/local/bin/ isn't in PATH so using pip after upgrading it fails.
|
|
|
|
klee-stats requires tabulate to be installed.
|
|
This is is tightly coupled with the TravisCI scripts.
There are some really nasty hacks in here that we should get rid of
at some point.
|