Age | Commit message (Collapse) | Author |
|
built with `-fvisibility-inlines-hidden`.
This was observed when using a bottled version of LLVM 3.4 on macOS
that appears to have been built with this option.
|
|
Fixes and clean ups in the TravisCI scripts
|
|
When trying to KLEE with a version of LLVM (specifically, 3.5) built from
Github (https://github.com/llvm-mirror/llvm/tree/release_35) the regex in
find_llvm.cmake failed to match the LLVM version string because it was suffixed
with "svn" - i.e. "3.5.2svn".
Added the optional "svn" suffix to the CMake regex to fix this.
|
|
to the root of the build tree after doing the hack the generate
the lit configuration files.
This will make it easier in the future to run more test configurations
(e.g. by passing options to lit to change KLEE's behaviour).
|
|
fast rather than continuing to run the tests (due to `set -e` at the
beginning of the script).
Although this gives less information in the event of a broken build
it means our builds might finish faster if they are broken and it
also simplifies the script significantly.
|
|
even though configure/build failed. This due to using the `&&` operator
which means failure of commands to execute in this compound statement
will not trigger the script to exit as requested by `set -e`.
|
|
Typo fix when compiling with LLVM 3.5 and above
|
|
Replaced an incorrect comma with a semicolon in the Executor constructor.
|
|
[CMake] Fix bug with enabling and then disabling TCMalloc support
|
|
and then re-configured with `ENABLE_TCMALLOC` set to OFF then
`klee/Config/config.h` was not correctly re-generated.
|
|
[CMake] Fix bugs in the Makefile bitcode build system
|
|
TravisCI config clean up
|
|
would not recompile if the `Makefile.cmake.bitcode.rules` file changed.
|
|
would not recompile if the LLVM C compiler flags changed. This could
happen if the user did something like
```
make -f Makefile.cmake.bitcode LLVMCC.ExtraFlags=-Wall
```
|
|
The main change here try to
* Avoid testing so many metaSMT configurtions
* Avoid testing so many build with STP's master branch
* Avoid testing so many builds that tests klee-uclibc's
`klee_0_9_29` branch.
* Avoid testing so many LLVM 2.9 builds given that it will
be deprecated soon.
* Remove coverage build. The server for receving this data
is dead.
This reduces 24 configurations to test down to just 14.
|
|
variables.
|
|
|
|
With the old buildsystem we could pass CFLAGS when building runtime
libs. Support passing some additional flags to cmake-based system too.
We need this to build 32 and 64bit runtime libs separately (but not
whole klee).
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Remove support for reporting the approximate git tag.
|
|
|
|
Moving to KLEE 1.3.0
|
|
This was confusing because it would emit something like
`v1.0.0-290-g08d4716` because the 1.1.0 and 1.2.0 releases
didn't have a tag on the master branch so `git describe --tags`
would just find the `v1.0.0` tag and report based on that tag.
|
|
|
|
|
|
Fixing current version of STP in Dockerfile (see #505) to 2.1.2
|
|
|
|
|
|
Fix Expr::compare
|
|
* Making `Expr::compre(const Expr&, ExprEquivSet)` private and moving
its implementation into `Expr.cpp`.
* Document `Expr::compare(const Expr&)`.
This partially addresses #515 .
|
|
and make it a pure virtual method. Also make it protected rather than
public because it is an implementation detail of `Expr::compare()`.
This means that sub classes must implement it so this commit also
provides implementations. The comparision behaves as before except
for `ConcatExpr` where its `width` attribute is now used (previously
it wasn't).
This commit also documents the semantics of `Expr::compareContents(const Expr&)`
which was clearly needed because it has been incorrectly implemented
in the past and has gone unnoticed for several years.
This partially addresses #515 .
|
|
`compareContents()`.
This bug would not have affected correctness but it would have
affected performance because if `Expr::compare()` was called on
two structually equal `NotExpr` then its children would be
checked for structually equality twice - once in
NotExpr::compareContents()` and once in `Expr::compare()`.
This partially addresses #515 .
|
|
|
|
|
|
to see if we can find klee-uclibc's C library.
|
|
`llvm-config` when using LLVM 3.5 and newer.
In newer versions of `llvm-config`, `--ldflags` doesn't give
the system libraries anymore. Instead we need to use `--system-libs`.
Issue reported by @ryosa .
|
|
Reported by @jirislaby in #507.
|
|
Now LLVM libraries are added as imported targets and their link dependencies
are explicitly stated so CMake can get the link order correct.
|
|
This has shown that there is another circular dependency
(added by me! sigh...) between `kleeCore` and `kleeModule`.
|
|
This fixes issue #507.
We can't build the components as shared libraries right now due
to cyclic dependencies (see #502 for a fix) and there are a few
other patches needed too (see #507).
Building the components as shared libraries isn't really desirable
anyway because it would require us to ship KLEE's libraries which
don't have a stable API.
|
|
|
|
interfering with CMake build.
We now raise a fatal error if we detect certain files in the source
tree. This is a heuristic but it's good enough for now.
The order of includes has also been changed so that the build tree
include directory has priority over the source tree include directory so
that even if the added check was missing the right header file (i.e.
`${CMAKE_BINARY_DIR}/include/klee/Config/config.h` would be picked up at
build time.
|
|
These were changes that I forgot to make in
dda296e09ee53ed85ccf1c3f08e7e809adce612e .
|
|
implement it in the solver.
|
|
|
|
|
|
MartinNowack-fix_bfs2
|
|
add nicer error messages for --use-merge and add explanation why it currently cannot be used with random-path
|
|
|
|
|
|
transitive dependencies on KLEE's libraries rather than on the final
binaries. This is better because it means we can build
other tools that use KLEE's libraries and not need to express the
needed LLVM dependencies.
It also makes it clearer what the dependencies are between KLEE
libraries. This has illustrated a problem with the `kleeBasic`
library. It contains `ConstructSolverChain.cpp` which clearly
belongs in `kleaverSolver` not in `kleeBasic`. This will be fixed
later.
|