File tree Expand file tree Collapse file tree 1 file changed +69
-0
lines changed
Expand file tree Collapse file tree 1 file changed +69
-0
lines changed Original file line number Diff line number Diff line change 1+ {
2+ stdenv ,
3+ lib ,
4+ fetchFromGitHub ,
5+ cmake ,
6+ ninja ,
7+ llvm_17 ,
8+ clang_17 ,
9+ z3 ,
10+ makeWrapper ,
11+ } :
12+
13+ stdenv . mkDerivation {
14+ pname = "symcc" ;
15+ version = "1.0-unstable-2024-07-16" ;
16+
17+ src = fetchFromGitHub {
18+ owner = "eurecom-s3" ;
19+ repo = "symcc" ;
20+ rev = "65a3633992318ded8939629eda54022932fd582d" ;
21+ hash = "sha256-WzZLeq+if7FyQKkSMDiqxnjtbb7eg8EVuNkCwxyEryM=" ;
22+ fetchSubmodules = true ;
23+ } ;
24+
25+ cmakeFlags = [
26+ "-DZ3_TRUST_SYSTEM_VERSION=on"
27+ "-DSYMCC_RT_BACKEND=qsym"
28+ ] ;
29+
30+ postPatch = ''
31+ echo 'install(TARGETS SymCC LIBRARY DESTINATION '\$'{CMAKE_INSTALL_LIBDIR})' >> CMakeLists.txt
32+ '' ;
33+
34+ postInstall = ''
35+ cp SymCCRuntime-prefix/src/SymCCRuntime-build/libsymcc-rt.{a,so} $out/lib/
36+
37+ install -Dm755 symcc sym++ -t $out/bin
38+
39+ wrapProgram $out/bin/symcc \
40+ --set SYMCC_RUNTIME_DIR $out/lib \
41+ --set SYMCC_PASS_DIR $out/lib
42+
43+ wrapProgram $out/bin/sym++ \
44+ --set SYMCC_RUNTIME_DIR $out/lib \
45+ --set SYMCC_PASS_DIR $out/lib
46+ '' ;
47+
48+ nativeBuildInputs = [
49+ cmake
50+ ninja
51+ llvm_17
52+ clang_17
53+ makeWrapper
54+ ] ;
55+
56+ buildInputs = [
57+ llvm_17
58+ z3
59+ ] ;
60+
61+ meta = {
62+ description = "Efficient compiler-based symbolic execution" ;
63+ homepage = "https://www.s3.eurecom.fr/tools/symbolic_execution/symcc.html" ;
64+ license = lib . licenses . gpl3Plus ;
65+ maintainers = [ lib . maintainers . dump_stack ] ;
66+ platforms = lib . platforms . linux ;
67+ mainProgram = "symcc" ;
68+ } ;
69+ }
You can’t perform that action at this time.
0 commit comments