**************************************** CDSChecker Readme **************************************** This is an evaluation-only version of CDSChecker. Please do not distribute. CDSChecker compiles as a dynamically-linked shared library by simply running 'make'. It should compile on Linux and Mac OSX, and has been tested with LLVM (clang/clang++) and GCC. Test programs should use the standard C11/C++11 library headers (/, , , ) and must name their main routine as user_main(int, char**) rather than main(int, char**). We only support C11 thread syntax (thrd_t, etc. from ). Test programs may also use our included happens-before race detector by including and utilizing the appropriate functions (store_{8,16,32,64}() and load_{8,16,32,64}()) for loading/storing data from/to from non-atomic shared memory. Test programs should be compiled against our shared library (libmodel.so) using the headers in the include/ directory. Then the shared library must be made available to the dynamic linker, using the LD_LIBRARY_PATH environment variable, for instance. Sample run instructions: make export LD_LIBRARY_PATH=. # run test program Note that we also provide a series of benchmarks, placed under the benchmarks/ directory. After building CDSChecker, you can build and run the benchmarks as follows: cd benchmarks make ./run.sh barrier/barrier -f 10 -m 2 # runs barrier test with fairness/memory liveness ./bench.sh # run all benchmarks twice, with timing results; all logged to