gnu: klee: Build with klee-uclibc support.

* gnu/packages/check.scm (klee): Use klee-uclibc.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
Sören Tempel 2024-07-08 09:44:26 +02:00 committed by Liliana Marie Prikler
parent 3bdaa223b3
commit 087bd6916d
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -1063,13 +1063,32 @@ (define-public klee
(base32 "1nma6dqi8chjb97llsa8mzyskgsg4dx56lm8j514j5wmr8vkafz6")))) (base32 "1nma6dqi8chjb97llsa8mzyskgsg4dx56lm8j514j5wmr8vkafz6"))))
(arguments (arguments
(list (list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch
(lambda _
(substitute* "CMakeLists.txt"
(("\\$\\{KLEE_UCLIBC_PATH\\}/lib/libc\\.a")
"${KLEE_UCLIBC_PATH}"))))
(add-after 'install 'wrap-hooks
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib")))
;; Ensure that KLEE finds runtime libraries (e.g. uclibc).
(wrap-program (string-append bin "/klee")
`("KLEE_RUNTIME_LIBRARY_PATH" =
(,(string-append lib "/klee/runtime/"))))))))
#:configure-flags #:configure-flags
#~(list (string-append "-DLLVMCC=" #~(list (string-append "-DLLVMCC="
(search-input-file %build-inputs "/bin/clang")) (search-input-file %build-inputs "/bin/clang"))
(string-append "-DLLVMCXX=" (string-append "-DLLVMCXX="
(search-input-file %build-inputs "/bin/clang++"))))) (search-input-file %build-inputs "/bin/clang++"))
(string-append "-DKLEE_UCLIBC_PATH="
(search-input-file %build-inputs "/lib/klee/libc.a"))
"-DENABLE_POSIX_RUNTIME=ON")))
(native-inputs (list clang-13 llvm-13 python-lit)) (native-inputs (list clang-13 llvm-13 python-lit))
(inputs (list gperftools sqlite z3)) (inputs (list bash-minimal klee-uclibc gperftools sqlite z3))
(build-system cmake-build-system) (build-system cmake-build-system)
(home-page "https://klee-se.org/") (home-page "https://klee-se.org/")
(synopsis "Symbolic execution engine") (synopsis "Symbolic execution engine")