* Thu Jun 15 2023 jslaby@suse.cz
- Update to version 3.0+20230611:
* Rewrote has_permission in the POSIX runtime.
* SpecialFunctionHandler: use std::array for handlerInfo
* fix ktest-randgen: use after free
* Fixed a format specifier pointed to by a compiler warning.
* Build and push Docker image as part of a release
* Use recommended LLVM 13 as part of the Docker image
* ktest-gen: remove unused function
* Further improve KDAlloc memory usage with infinite quarantine
* test/Feature/StackTraceOutput.c: relative checks, clang-format
* re-enable StackTraceOutput.c test
* make BatchingSearcher more readable
* fix BatchingSearcher's disabled time budget
* also check for default CHECK directive in ArrayOpt Tests
* CMake: use check_c_source_compiles() for FSTATAT_PATH_ACCEPTS_NULL
* config.h: include FSTATAT_PATH_ACCEPTS_NULL
* doxygen.cfg.in: DOXYGEN_OUTPUT_DIR
* and much more
- remove
* 0001-gcc13-include-cstint-for-int-_t.patch (in upstream)
* Mon Mar 27 2023 jslaby@suse.cz
- Update to version 2.3+20230326:
* tests: add some missing headers
* fix unused variables warning
* Remove model_version from the POSIX runtime, as we have never used it.
* tests: add some
* stats: add some
* remove obsolete header
* Run KDAlloc/rusage unittest a few times to allow for swapfile interference
* Added more test cases for --entry-point. EntryPointMissing is currently expected to fail.
* STP: add option to switch SAT solver: --stp-sat-solver and set default to CryptoMinisat
* Change `llvm_map_components_to_libnames` to `llvm_config` CMake function
* use C++17
* Require minimal version of CMake 3.16 for KLEE
* Remove hard to understand and debug pcregrep test
* klee-stats: improve error message for missing tabulate package
* Handle fail of KLEE gracefully
* Explicitly check if 32bit support is enabled for testing
- remove
* 0001-cmake-implement-USE_MAP-to-support-single-LLVM-libra.patch
It's in upstream in a different form.
* Wed Mar 22 2023 jslaby@suse.cz
- Update to version 2.3+20230320:
* ConstantArrayExprVisitor: Fix detection of multiple array indices
* ConstantArrayExprVisitor: Deduplicate `visitConcat` and `visitRead`
* llvm14 support
* Update KDAlloc unittests
* Don't fail `KleeStats.c` test if it takes 1s or longer
* Disable `const_array_opt1` for ubsan as well
* Fix uninitialised memory access while reading last path entry
* Fix building of runtime library and klee-replay
* Add support to disable memsan instrumentation; update UB/Asan suppression
* [MemSan] Mark memory objects modified by syscalls as initialised
* Fix compiler warning with newer compilers
* Use bitcode library paths via config generation instead of `-D` flags
* [cmake] Use LLVM's CMake functionality only
* Fixed a bug in KLEE libc's implementation of strcmp: according to the C standard, characters should be compared as unsigned chars.
* Add some system tests for KDAlloc
* Integrate KDAlloc into KLEE
* Have the STP coverage build also provide Z3, so that the crosscheck solver can also be tested
* Add a few simple solver tests
* create klee-last as a relative link
* Fix integer overflow
* Add an extra check to test/Runtime/FreeStanding/memcpy_chk_err.c ensuring that a call to __memcpy_chk is emitted
* fix output check in test const_arr_opt1
* add missing FileCheck command to test
* Fixed some leaks in klee-replay
* fix FileCheck cmd of VarArgByVal test
- remove (upstream):
* 0001-Module-InstructionOperandTypeCheckPass-Fix-Wbitwise-.patch
* 0001-llvm14-Add-LLVM-14-to-lit.cfg.patch
* 0002-llvm14-TargetRegistry.h-was-moved-from-Support-to-MC.patch
* 0003-llvm14-PointerType-getElementType-was-deprecated.patch
- add
* 0001-cmake-implement-USE_MAP-to-support-single-LLVM-libra.patch
* 0001-gcc13-include-cstint-for-int-_t.patch
Version: 2.3+20220926-bp155.1.12
* Tue Oct 25 2022 jslaby@suse.cz
- Update to version 2.3+20220926:
* Improve the message for when large arrays become symbolic.
* Pass llvm.experimental.noalias.scope.decl to IntrinsicLowering so that
it strips out these intrinsics
* Improve pattern for FileCheck in UBSan's tests
* Add README to UBSan runtime
* Eliminate .undefined_behavior.err category and simplify tests
* Check extensions of generated files in tests
* Introduce separate categories for different kinds of undefined behavior
* Support UBSan-enabled binaries
- update FileCheck.cpp to llvm 14's
* Tue Sep 06 2022 Jiri Slaby <jslaby@suse.cz>
- add llvm 14 support
* 0001-llvm14-Add-LLVM-14-to-lit.cfg.patch
* 0001-Module-InstructionOperandTypeCheckPass-Fix-Wbitwise-.patch
* 0002-llvm14-TargetRegistry.h-was-moved-from-Support-to-MC.patch
* 0003-llvm14-PointerType-getElementType-was-deprecated.patch
- switch to llvm 14
* Mon Sep 05 2022 jslaby@suse.cz
- Update to version 2.3+20220826:
* Use true instead of Z3_TRUE (removed in z3 4.11.0)
* Corrected wrong usage of klee_report_error in __cxa_atexit handler
* Support arguments of width 128, 256 and 512 bits for external calls
* POSIX runtime: fstatat: check for nonnull path APIs
* Inline asm external call
* Fix memory leak in crosscheck core solver mechanism
* checkout KLEE with depth > 1 when running codecov
* rename CallSite to CallBase
* remove LLVM < 9
* Perform coverage analysis for z3 as well
* Remove the CI target metaSMT(Boolector). metaSMT(STP) already runs the
test suite with all solvers supported by metaSMT, so the extra target
provides marginal benefits.
* Implement getArrayForUpdate iteratively
* Fix error with empty EntryPoint
* Intrinsics: Add support for @llvm.f{ma,muladd}.f*
* Use `klee` user to install system dependencies
* Spelling Fixes
* tests: add StackTraceOutput.c
* .err files: minor readability changes to stack trace output
* Update SpecialFunctionHandler.cpp
* tests: invoke LLVM tools through their corresponding macros
* Tue May 10 2022 jslaby@suse.cz
- Update to version 2.3+20220506:
* Switch to newer KLEE uClibc release
* Updated tests to use ktest-randgen instead of gen-random-bout
* Renamed gen-random-bout to ktest-randgen
* Updated tests to use ktest-gen instead of gen-bout
* Updated klee-zesti to use ktest-gen instead of gen-bout
* Renamed gen-bout to ktest-gen
* cl flags: document default values, remove dead option:
- -replay-keep-symbolic
* Make Uclibc support a runtime option, not a compile-time one.
* use mallinfo2 if available
* Remove unnecessary call to deprecated function sqlite3_enable_shared_cache
* Add LLVM 9 and LLVM 11 patches to build with newer Linux kernel versions
* Build libcxx in parallel if possible
* Clearly separate between LLVM, a bitcode compiler, and sanitizer compiler
* Add support to `sudo` if necessary
* Removed/updated obsolete Doxygen configuration options
* Disabled Doxygen by default
* ADT/Ref.h: remove header
* Updated test MemoryLimit.c to use FileCheck, and formatted the file
* Document that GetTotalMallocUsage returns the usage in bytes
- add shlib-policy-name-error filter to rpmlint (for 15.4)
* Wed Mar 16 2022 jslaby@suse.cz
- Update to version 2.2+20220311:
* FD_Fail: use /dev/zero instead of /etc/mtab
* Core/Executor: Fix unaligned write of fp80 arguments
* Core/ExecutionState: Fix uninitialized reads in unit tests
* CI: add `-fno-sanitize-recover=undefined` to UBSAN flags
* tests: make UBSAN print stack traces
* CI: drop `-fsanitize=integer` from UBSAN flags
* CI: Update GTest to 1.11.0
* CI: Update Z3 to 4.8.14
* build: fix missing target for grep
* fix CMake: gtest from llvm includes gtest_main
* and many more
- delete (they are all upstream)
* 0001-Support-FileHandling.cpp-rewrite-to-C-14.patch
* 0002-llvm13-llvm-fs-F_None-has-been-removed.patch
* 0003-llvm13-llvm-cl-GeneralCategory-is-no-longer-a-global.patch
* 0004-llvm13-CreateLoad-API-with-implicit-types-has-been-d.patch
* 0005-llvm13-CreateGEP-no-longer-accepts-nullptr.patch
* 0006-llvm13-llvm-APInt-toString-has-been-moved-to-StringE.patch
* 0007-llvm13-Add-LLVM-13-to-lit.cfg.patch
* 0008-llvm13-Add-LLVM-13-to-Travis-CI-and-GitHub-Actions.patch
* Tue Oct 19 2021 jslaby@suse.cz
- Update to version 2.2+20211017:
* test/Runtime/POSIX/Futimesat: futimesat(2) requires _GNU_SOURCE on glibc platforms
* test/Runtime/POSIX/Futimesat: Compile with -std=c99
* test/Feature/FunctionAlias.c: Add missing CHECK-UNKNOWN prefix
- add llvm 13 support
* 0001-Support-FileHandling.cpp-rewrite-to-C-14.patch
* 0002-llvm13-llvm-fs-F_None-has-been-removed.patch
* 0003-llvm13-llvm-cl-GeneralCategory-is-no-longer-a-global.patch
* 0004-llvm13-CreateLoad-API-with-implicit-types-has-been-d.patch
* 0005-llvm13-CreateGEP-no-longer-accepts-nullptr.patch
* 0006-llvm13-llvm-APInt-toString-has-been-moved-to-StringE.patch
* 0007-llvm13-Add-LLVM-13-to-lit.cfg.patch
* 0008-llvm13-Add-LLVM-13-to-Travis-CI-and-GitHub-Actions.patch
- switch to llvm 13
* Mon Oct 04 2021 jslaby@suse.cz
- Update to version 2.2+20210915:
* LLVM 12 support
* Test failure for WSL 1
- delete (they are upstream)
* 0001-llvm12-VectorType-getNumElements-has-been-deprecated.patch
* 0002-llvm12-Add-LLVM-12-to-lit.cfg.patch
* 0005-llvm12-Implement-llvm.-s-u-max-min-intrinsics.patch
* 0006-llvm11-Handle-llvm.roundeven-instrinsic.patch
* 0007-llvm12-Implement-llvm.abs-intrinsic.patch
* Fri May 28 2021 Jiri Slaby <jslaby@suse.cz>
- Update to version 2.2+20210510:
* allocate memory objects for functions
* differentiate between partial and completed paths in summary and fix paths
stats when not dumping states
* posix runtime: add malloc checks
* Fix erroneous klee-stats legend for --print-all
* Replaced the time-based delay
* Refactored maxStaticPctChecks into a sequence of conditions.
* Added a warning when forking is skipped due to MaxStatic*Pct limits being
reached
* Added -max-static-pct-check-delay to replace the hardcoded delay after
which the MaxStatic*Pct checks are performed.
* klee-replay: Fix -Wformat-truncation warning
- Switch to LLVM 12. (patches from pr#1389 + 1)
* 0001-llvm12-VectorType-getNumElements-has-been-deprecated.patch
* 0002-llvm12-Add-LLVM-12-to-lit.cfg.patch
* 0005-llvm12-Implement-llvm.-s-u-max-min-intrinsics.patch
* 0006-llvm11-Handle-llvm.roundeven-instrinsic.patch
* 0007-llvm12-Implement-llvm.abs-intrinsic.patch
* 0001-test-disable-until-it-is-fixed.patch
* Tue Feb 23 2021 jslaby@suse.cz
- Update to version 2.2+20210222:
* runtime/POSIX: fix failures with glibc-2.33
- remove 0001-runtime-POSIX-fix-failures-with-glibc-2.33.patch
* Fri Feb 19 2021 jslaby@suse.cz
- Update to version 2.2+20210216:
* Executor: remove obsolete special case for __cxa_{re,}throw
* add klee_messages for C++ exception handling support
* add ifdefs for C++ exception handling
* renaming 'libcxx' -> 'libc++'
* posix runtime: getcwd: check malloc and set errno
* posix runtime: remove dead branch
* klee-libc: simplify mempcpy
* fix cflags for runtime build types
- add 0001-runtime-POSIX-fix-failures-with-glibc-2.33.patch
* Sun Dec 13 2020 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Update version to 2.2: the biggest changes are C++ exception
support and additional runtime libraries.
* Only build 32bit runtime libraries if supported by platform
* Compatibility with LLVM 11.
* Declare mempcpy on macOS, to silence compiler warnings
* Handle LLVM version selection more robust
* Use non-interactive input
* p-klee.inc: libc++abi only needed for c++ exception support
* slightly improve C++-related CMake strings
* fix CMake: libcxxabi is only required with KLEE_EH_CXX
* tests: add test for klee-stats --table-format=csv/readable-csv
* klee-stats: add (readable) csv format (--table-format=readable-csv/csv)
* Do not redefine fgetc_unlocked and fputc_unlocked unconditionally.
* Added fortified library (for -D_FORTIFY_SOURCE), to be linked when uc…
* Test checking that __memchk_chk is handled correctly with the freesta…
* Rename FreeStanding to Freestanding where appropriate
* [build] Add multilib package to build 32bit on ubuntu
* Link to the different runtime libraries depending on the application …
* [cmake] Add support to generate arbitrary runtime library configurations
* [cmake] Always create KLEE runtime directory even if POSIX is not built
* [cmake] Remove clean_all target as not needed by any additional target
* [cmake] Use clean command to remove generated doxygen files
* [cmake] Remove several leftovers from old autoconf build system
* [cmake] Switch to "newer" cmake version 3.5.0
* fix: bcmp with n==0
* Call functions in __cxa_atexit in reverse order
* Optimize StaticDestructor test to be less fragile to compiler optimiz…
* fix Executor: remove UB from bindInstructionConstants
* DFS/BFS/RandomSearcher: replace loop with std::find
* MergingSearcher: remove random-path incompatibility
* searchers: clean up, add documentation
* address MartinNowack's remaining feedback
* README-CMAKE.md: add C++ related variables
* Exception handling only for LLVM >= 8.0.0
* use isa<> and explicit nullptr-check for compilation with older LLVM …
* Implemented support for C++ Exceptions
* implement fneg instruction
* fix: fabs() working on the wrong argument
* Explicitly track global variables in getDirectCallTarget
* Added support for klee_open_merge and klee_close_merge in replay, tog…
* klee-stats: fix behaviour for broken/empty DBs
* Add check if KLEE is installed
* [CMake][Z3] Check if function `Z3_get_error_msg` needs `context` usin…
* Remove shebang from include
* Fix LLVM 4.0 build patch
* Replace llvm::CallSite with llvm::CallBase on LLVM 8+
- Go with regular release for now.
- Switch to LLVM 11.
* Wed Sep 23 2020 jslaby@suse.com
- Update to version 2.1+20200921:
* Added a PR template, with a checklist documenting the most frequent issues we have encountered
* [gen-bout] Support multiple symbolic files
* Add klee-zesti a ZESTI like wrapper script
* Fix codecov upload
* Remove secure vars
* Guard process-tree compression with a command-line switch
* More robust handling of unknown intrinsics
* Definition of __cxa_thread_atexit_impl for the KLEE libc.
* klee-stats: check for a run.stats file in the klee-out directory, to prevent outputting wrong data.
* DiscretePDF: use IDs instead of pointers (see PR #739)
* New intrinsic: klee_is_replay
- disable 32 bit archs as klee doesn't (and won't) build on them
* Thu Aug 06 2020 jslaby@suse.com
- Update to version 2.1+20200730:
* introduce --rng-initial-seed=<unsigned>
* remove holes in Instruction-/FunctionInfoTable, add documentation
* Clean-up and add documentation
* Remove state contructor with constraints
* Use constraint sets and separate metadata for timing solver invocation
* Separate constraint set and constraint manager
* Move constraint implementation from header to cpp files
* Enable subsets for RandomPathSearcher
* [PTree] Replace left/right with PointerIntPair
* Implement fshr/fshl intrinsics
* Switch to a more recent version of SQLite in the CI
* Enforce fork/branch limits in branch() and fix double termination
* fix Executor: initializeGlobalAliases
* ExecutorUtil: assert that GlobalValue is already known
* add simple unknown bitcast alias test from the original issue
* and more
- switch to obs_scm
* Tue Jun 09 2020 jslaby@suse.com
- Update to version 2.1+20200606:
* [Module] Add testcase for inline asm lifting
* [Module] Disable lifting for inline asm resembling memory fences with return values
* Add test case from #1257 to reproduce behaviour
* [Solver:STP] Fix handling of array names
* docker: install KLEE headers in system include path
* Moved header files that were placed directly in include/klee/ into appropriate existing directories and a new directory Statistics; a few missing renames.
* Removed include/klee/util and moved header files to appropriate places
* Created include/klee/Core directory and moved appropriate files direc\ tly in lib/Core
* Move header files from lib/Expr to include/klee/Expr to eliminate includes using "../"
* Removed the Internal directory from include/klee
* Sat Apr 25 2020 aaronpuchert@alice-dsl.net
- Update to version 2.1+20200420:
* Consistently define variable using notation VAR=value; fixed comment placement
* Named jobs in Travis CI for better visualization of results
* [posix-runtime] Improve model to handle full-path symbolic files
* [posix-runtime] Add test for full path consistency for symbolic files
* readStringAtAddress: support pointer into objects
* test: add a new test for readStringAtAddress
* readStringAtAddress: use stringstream to obtain the string
* stats: rename QueriesConstructs to QueryConstructs
* Statistic: slightly modernise class definition
* stats: remove queryConstructTime (unused)
* Add unit test for Z3Solver::getConstraintLog
* Run "pkg update -f" before installing dependencies on FreeBSD
* Don't search for CryptoMiniSAT when configuring STP
* Fixed some messages, particularly Klee -> KLEE
* Ensure that temp_builder is used when adding constant array value assertion constraints
* StatsTracker: remove NumObjects, fix assignment of and always write ArrayHashTime
* [posix-runtime] Simple GET/SET_LK model
* Additional test for dealing with vector instructions
* Added another `ScalarizerLegacyPass` run to remove vectorized code introduced during the optimization step
* Fixed compiler warning when printing variable of type off_t
* stat64 is deprecated on macOS; use stat instead
* Use -snap VMs on Cirrus for FreeBSD
* Updating KLEE's version post-release
* Release notes for 2.1
* Set version to 2.1
* fix lit.cfg: numerical comparison of LLVM version numbers
* travis: add LLVM 10.0
* test/lit.cfg: add LLVM 10.0
* stats: enforce table creation
* [klee-stats] Grafana: Limit number of entries to query for column names
* [klee-stats] Use the last row inserted instead of the row with highest Instructions
* [klee-stats] Refactor preparing and printing the table
* [klee-stats] Check for existence of stats file for Grafana as well
* [klee-stats] Do not crash if tabulate is not installed but requested
* [klee-stats] Refactor writing table into own function
* [klee-stats] Refactor CSV printout in own function
* [klee-stats] Check if stats file exist before trying to open it
* Add leading zeros to genbout
* fix p-llvm.inc: invocation for monorepo directory layout
* find_llvm.cmake: enable parsing for git version
* Use FreeBSD 11.3-STABLE instead of EoLed 11.2.
* Workaround `pkg` breakage on FreeBSD CI.
* Use `ref<>` for MemoryObject handling
* Use `ref<>` for UpdateNode
* Clean-up header files
* Add move assignment operator and move construct for `ref` class.
* Add `ReferenceCounter` struct utilized by ref<>
* Fix ptr reference invalidation if last reference gets freed before new reference assigned.
* Use call-by-reference for hash-function invocation
* Replace old TR1 implementations of unordered_map/set with std::* versions
* Use a newer Ubuntu 18.04 from the year 2020 to build KLEE Dockerimage
* Use a newer Ubuntu 18.04 from the year 2020 to build KLEE
* Update Docker image template for KLEE.
* Use system's boost when building metasmt and user newer boolector version
* Do not wait if SANITIZER_BUILD is empty
* Add llvm as build dependency of clang in case no system packages are available
* Add patch support for libcxx
* Use git repository to build LLVM
* Update ubuntu build dependencies for KLEE
* update
- Switch to LLVM 10.
- Disable assertions.
- Take "FileCheck" and "not" from official git repository.
* Fri Jan 24 2020 jslaby@suse.com
- Update to version 2.0+20200119:
* Remove statistics limit from istats.
* Fix handling of debug information for functions
* Update objdump script to support python3
* Fixed documentation for command line argument link-llvm-lib
* Assume assembly.ll is local to the run.istats file
* Remove unnecessary std::move's that prevent copy elision
* [optimize-array] Fix value transformation
* [optimize-array] Fix hole index in buildMixedSelectExpr
* [optimize-array] Fix hash collisions
* [optimize-array] Hash collision test
* [optimize-array] Fix update list read order
* [Searchers] Remove weight from es, add nurs_depth
* Move merging related code from Executor into MergingSearcher
* Implement @llvm.is.constant() intrinsic handling and add a test for it.
* [expr-visitor] Remove unnecessary allocation
* Handle llvm.objectsize explicitly
* Added test for 3-argument main.
* Allow main with 3 arguments
* Most libc++ tests require uclibc; add missing REQUIRES statements or remove dependency.
* Core: Executor, remove unused variable
* Do not modify strings if they are read-only.
* Mark all constant global memory objects as constant
* [test] Fix missing includes
* runtime: fix for glibc 2.30
* Remove the duplicated check for DebugInfoIntrinsic
- Remove 0001-runtime-workaround-for-glibc-2.30.patch (upstreamed)
* Mon Nov 04 2019 jslaby@suse.com
- switch to llvm 9
- Update to version 2.0+20191031:
* Executor: fix missing default case in switch instruction
* enable testing for LLVM 9.0
* LLVM 9.0: fourth parameter for @llvm.objectsize()
* klee-libc: add bcmp
* support compilation against LLVM 9.0
* [klee-replay] Fix relative executable paths
* ExecutorTimers: refactor and move to support lib
* ExecutorTimers: remove signalling, fix endless looping fork
* Executor.h: remove defined functions without implementation
* test/Expr/Evaluate2.kquery: add link to issue
* fix: make llvm 7.1 known
* test/Feature/SolverTimeout.c: re-enable for Z3
* test/lit.cfg: test if current version is known
* test/lit.cfg: use lit_config instead of lit
* Do not use klee_range() in regression/2014-09-13-debug-info.c test, as it is incompatible with klee_prefer_cex. Fixes https://github.com/klee/klee/issues/1161
* Fri Oct 04 2019 jslaby@suse.com
- Update to version 2.0+20190920:
* Add saturated arithmetic intrinsics
* fixed bug in IntrinsicCleaner trap cleaner
* StatsTracker: switch from TRUNCATE to WAL journal mode
* Read Klee's start time correctly in klee-stats
* CMake: show values of optional LLVM variables
* Provide klee runtime build type as parameter
* PTree: fix dump() method
* ExecutionState: remove fnAliases
* implement FunctionAliasPass
* remove klee_alias_function()
* Implement handling of the llvm.fabs intrinsic
* and more fixes
- drop unused disable-failing-test.patch
- add 0001-runtime-workaround-for-glibc-2.30.patch
* Fri Jul 12 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Use -flto=thin instead of -flto=<number> for Clang.
* Mon Jul 01 2019 Aaron Puchert <aaronpuchert@alice-dsl.net>
- Switch to LLVM 8.