From 087bd6916ddd03d5f92d0a77d0e5f849e957ddb9 Mon Sep 17 00:00:00 2001 From: Sören Tempel Date: Mon, 8 Jul 2024 09:44:26 +0200 Subject: gnu: klee: Build with klee-uclibc support. * gnu/packages/check.scm (klee): Use klee-uclibc. Signed-off-by: Liliana Marie Prikler --- gnu/packages/check.scm | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 44cf069b00..3bfcf5a37e 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -1063,13 +1063,32 @@ with the @code{klee} package.") (base32 "1nma6dqi8chjb97llsa8mzyskgsg4dx56lm8j514j5wmr8vkafz6")))) (arguments (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 #~(list (string-append "-DLLVMCC=" (search-input-file %build-inputs "/bin/clang")) (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)) - (inputs (list gperftools sqlite z3)) + (inputs (list bash-minimal klee-uclibc gperftools sqlite z3)) (build-system cmake-build-system) (home-page "https://klee-se.org/") (synopsis "Symbolic execution engine") -- cgit v1.2.3