microsoft / SLAyer

SLAyer is an automatic formal verification tool that uses separation logic to verify memory safety of C programs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compilation error due to no "esp.cma"?

cinemamoon opened this issue · comments

The compilation error I encountered is "Cannot find file esp.cma" . It seems like that Slayer needs additional build tools such as flexdll,ocaml,sdv,esp noted in the Makefile. I successfully installed ocaml,felxdll from Internet, but I could not find out what sdv and esp are. Could you tell me how to hurdle this problem so that I can compile Slayer? I am building on Windows10+Microsoft SDK7.1+cygwin. Below is the full compilation error message:

$ make
cd /cygdrive/c/Users/ss/Desktop/slayer/SLAyer/src/../tools/Z3/src/../build; nmake /nologo api_dll
make DEPS='/cygdrive/c/Users/ss/Desktop/slayer/SLAyer/src/_build*/{Slayer,CounterExample,Pure}.cm{i,o,x}' ARGS='-DUNSAFE_ERRORS -DLEAK_CONTEXTS' -C /cygdrive/c/Users/ss/Desktop/slayer/SLAyer/src/../tools/Z3/src/../build/api/ml z3.cma z3.cmxa
make[1]: Entering directory '/cygdrive/c/Users/ss/Desktop/slayer/SLAyer/tools/Z3/build/api/ml'
make[1]: 'z3.cma' is up to date.
make[1]: 'z3.cmxa' is up to date.
make[1]: Leaving directory '/cygdrive/c/Users/ss/Desktop/slayer/SLAyer/tools/Z3/build/api/ml'
make: git: Command not found
echo "let version = """ > Version.ml
======== building SLAyer debug (byte & native) code ========
ocamlbuild -j 4 -no-links -build-dir _build/Windows_NT/x86 -tag bin_annot -cflags "-short-paths -w +6+7+27+29+32..39+41+44+45" -cflags -I,C:/Users/ss/Desktop/slayer/SLAyer/src/../tools/esp/ocaml -lflags -I,C:/Users/ss/Desktop/slayer/SLAyer/src/../tools/esp/ocaml -cflags -I,C:/Users/ss/Desktop/slayer/SLAyer/src/../tools/Z3/build/api/ml -lflags -I,C:/Users/ss/Desktop/slayer/SLAyer/src/../tools/Z3/build/api/ml -cflags -annot -Is Library,contaminated,UnitTests,UnitTests/StandAlone -libs str,unix,z3 -lib esp -lflags "-cclib /link/NODEFAULTLIB:LIBCMT" -tag debug
slayer.byte Frontend.byte slayer.native Frontend.native
mkdir 'C:\Users\ss\Desktop\slayer\SLAyer\src_build'
mkdir 'C:\Users\ss\Desktop\slayer\SLAyer\src_build/Windows_NT'
mkdir 'C:\Users\ss\Desktop\slayer\SLAyer\src_build/Windows_NT/x86'
00:00:14 186 (0 ) Graph.cmo O-B--Di- /File "Graph.ml", line 575, characters 15-27:
Warning 3: deprecated: Library.Array.create
Use Array.make instead.
00:00:17 231 (0 ) Library/NSString.cmo O-B--Di- \File "Library/NSString.ml", line 9, characters 13-19:
Warning 3: deprecated: create
Use Bytes.create instead.
File "Library/NSString.ml", line 14, characters 8-28:
Warning 3: deprecated: String.set
Use Bytes.set instead.
00:00:21 271 (0 ) slayer.byte O-BP-DiL /File "none", line 1:
Error: Cannot find file esp.cma
Exit code 2 while executing this command:
''C:/ocamlms/bin/ocamlc.opt -I C:/Users/ss/Desktop/slayer/SLAyer/src/../tools/esp/ocaml -I C:/Users/ss/Desktop/slayer/SLAyer/src/../tools/Z3/build/api/ml -cclib /link/NODEFAULTLIB:LIBCMT str.cma unix.cma z3.cma esp.cma -g Library/NSLib.cmo Library/NSList.cmo Library/NSArray.cmo Library/NSOption.cmo Library/NSSet.cmo Library/NSBinaryRelation.cmo Library/NSHashtbl.cmo Library/NSHashMap.cmo Library/NSHashMultiMap.cmo Library/NSPolyHashMap.cmo Library/NSHashSet.cmo Library/NSMap.cmo Library/NSImperativeMap.cmo Library/NSMultiMap.cmo Library/NSImperativeMultiMap.cmo Library/NSImperativeSet.cmo Library/NSIndexedSet.cmo Library/NSMultiIndexedSet.cmo Library/NSMultiSet.cmo Library/NSMultiIndexedMultiSet.cmo Library/NSSortedList.cmo Library/NSString.cmo Library/NSTuple.cmo Library.cmo Config.cmo Graph_sig.cmo Log.cmo Graph.cmo HashCons.cmo FLD.cmo Hooks.cmo TYP.cmo UniqueId.cmo Type.cmo Variable.cmo Expression.cmo Substitution.cmo Timer.cmo Pure.cmo CONGRUENCE_RELATION.cmo CngRel.cmo SYMBOLIC_HEAP.cmo BiEdge.cmo FORMULA.cmo DisjCngClos.cmo SymbolicHeap.cmo Program.cmo Interproc_sig.cmo AbstractTransitionSystem.cmo Initialize.cmo Discovery.cmo HeapGraph.cmo UnitTests/TestGen.cmo UnitTests/TestGenProver.cmo Prover.cmo TRANSITIVE_RELATION.cmo DisjTransClos.cmo TransRel.cmo Reachability.cmo HeapAbstraction.cmo Abstraction.cmo Interproc.cmo Frame.cmo SymbolicExecution.cmo Analysis.cmo CounterExample.cmo Instrumentation.cmo Inline.cmo Livevars.cmo RemoveUnusedGlobals.cmo TransformProgram.cmo Statistics.cmo Version.cmo slayer.cmo -o slayer.byte
Compilation unsuccessful after building 271 targets (0 cached) in 00:00:21.
Makefile:90: recipe for target 'dbg' failed
make: *** [dbg] Error 2

ss@s /cygdrive/c/Users/ss/Desktop/slayer/SLAyer/src
$

Hi @cinemamoon,
Thanks for attempting to build SLAyer. Your issue is related to #1 and #4: we need to implement a frontend that parses C in to the SIL.ml datastructures. (If you can help with that, that would be great!)