It is not recommended to try install all required dependencies locally in your system. Build docker image and run container:
./scripts/rund.sh- Run for release:
cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=Release- Run unit tests:
cmake --build build --target lin_check_test- Run verify:
cmake --build build --target verifying/targets/nonlinear_queue && ./build/verifying/targets/nonlinear_queue --tasks 10 --rounds 240 --strategy pctVerifying of blocking data structures uses syscall interception, so we need to build and install special hooks, that are required to be load through LD_PRELOAD:
cmake --build build --target verifying/blocking/nonlinear_mutex && LD_PRELOAD=build/syscall_intercept/libpreload.so ./build/verifying/blocking/nonlinear_mutexSome blocking targets depends on boost and folly. For them you need to install boost and folly locally, and provide ./boost and ./folly symbolic links at the root of the project, then we can lincheck these targets.