This project uses three kinds of dependencies:
- External
- Git Submodules
- Internal
With external dependencies we refer to software components that are not shipped in this repository, but which are necessary to build or run DRace.
- CMake > 3.8
- DynamoRIO 7.0.x (use weekly releases)
- C++11 / C99 Compiler (e.g msvc)
The source of these dependencies are not stored inside the repository, but included using git submodules.
All submodules are located in the vendor
directory.
Mandatory:
Optional:
Mandatory:
These components are adapted or modified for DRace and shipped with the repository. The exact license wording is found either in the source file directly, or in a dedicated license file in the directory.
Name | Location | License | Comment |
---|---|---|---|
LLVM-Tsan | vendor/tsan |
BSD-Like/MIT | a customized version is included in binary format |
CoreCLR Header | ManagedResolver/include/prebuild |
MIT | prebuild version of MIDL files (cannot be build on windows) |
Ringbuffer | common/ipc/ringbuffer.cpp |
CC0 | generic ring buffer implementation for embedded targets |
LossyCounting | drace-client/include/lcm |
BSD 3-Clause | fast lossy-counting model implementation |
git-watcher | CMakeExt/git_watcher.cmake |
MIT | burn in git commit hash into binary |